메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

CXF & AXIS2
  • 작성자

    홍*관

  • 작성일

    2013-03-06 09:18:23

  • 조회수

    1,864

  • 구분

    개발환경

  • 진행상태

    완료

질문

안녕하세요.
기존에 잘 운영되던 시스템에 추가 서비스를 붙이다 에러가 나서 문의드립니다.

신규 추가된 라이브러리를 개발시에는 로컬에 임시로
src/main/webapp/WEB-INF/lib 폴더에 복사해놓고 개발하여서 테스트를 잘 하였습니다.
서버로 배포하기전에 Nexsus 서버를 이용 Maven 설정을 하여 테스트 하니 서버구동시 오류가 납니다.

에러메세지는
[2013-03-05 09:02:08,376][org.springframework.web.context.ContextLoader][ERROR]- Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'eaprvlnkg': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaCollection.read(Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/apache/ws/commons/schema/XmlSchema;
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)

이며 확인결과 webservice 관련 모듈에서 에러입니다.

에러가 나는 jar 파일은 아래 4개 파일입니다.
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>ws-commons</groupId>
<artifactId>axiom-api</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>ws-commons</groupId>
<artifactId>axiom-impl</artifactId>
<version>1.1.1</version>
</dependency>

검색하고 여러가지를 유추 결과 기존 웹서비스를 CXF 라이브러리로 서비스 중이었으며 신규로 추가되는 라이브러리가 AXIS2 로 두개가 같이 올려지면서 에러가 나는걸로 추정합니다.

서비스제공한쪽에서는 라이브러리 로딩 순서를 바꿔보라고 하는데 어떤방법으로 가능한가요?

1. Maven pom.xml 에 dependency 순서를 바꾸는 방법이 될련지?
(바꿔서 해봤는데 안되네요. ㅠㅜ)
2. Class Path 에서 순서를 주어야 하는지?
3. Maven 을 사용하지 않고 lib 폴더에 직접 복사하여 사용해야 하는지?

최종 해결 목적은 CXF, AXIS2 라이브러가 같이 구동되는게 목적입니다.
어떤 좋은 방법이 있을까요?

답변

안녕하세요.. 홍승관님..

우선.. maven의 순서나.. library 로딩 순서로는 해결하실 수 없으실 것 같습니다. (lib에 직접 복사하셔도 ...)

하나가 먼저 로딩되면.. 나머지는 로딩되지 못하기 때문에 .. 둘 중 하나가 정상이라면.. 나머지는 오류가 발생할 수 밖에 없습니다...

이 경우는 2개의 기능을 web application으로 분리 하시는 방법뿐이 없으실 것 같습니다.

그럼.. 즐거운 하루되십시오.
감사합니다.

이 페이지의 구성

묻고 답하기