문제

AXIS2 웹 서비스를 OC4J 10.1.3 앱 서버에 배포하려고합니다.

나는 전에 Axis 1.4를 사용하고 있었고 방금 모든 파일과 함께 나만의 공유 라이브러리를 만들었습니다. 1.4로 1.5로 패치 된 문제가 있었으므로 이제 사용하고 있지만 모든 라이브러리를 포함하지는 않습니다. 이번에는 axis2.war를 OC4J 서버에 배포했으며 Axis2 Admin 페이지를 사용하여 웹 서비스를 배포하려고 시도합니다.

Axis2를 통해 웹 서비스를 배포하면 java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z 그러나 나는 상충되는 도서관을 찾을 수 없습니다. AXIS2에는 새로운 JAX-WS 라이브러리가 있지만 OC4J 앱 서버에서 문제라고 생각합니다. XML.jar (오래된 JAXB 1.0 LIBS가 있기 때문에)를 제외했으며 로컬 컴퓨터에서 문제가 있지만 Linux 상자에는 문제가 없습니다.

배포 계획을 편집하여 로컬 폴더를 먼저 검색하려고 시도했는데 서비스를 배포 할 수 있지만 서비스에 액세스하려고하면 WSDL에 액세스하려고하면 클래스 캐스트 예외 및 JXDocumentBuilDerfactory와 관련하여 오류가 발생합니다 (없습니다. 이 순간의 정확한 오류).

Linux 상자의 공유 라이브러리를 내 지역 시스템의 공유 라이브러리를 비교했으며 각 기계에 동일한 라이브러리를 사용했습니다 (각 JAR의 버전을 확인하지는 못했습니다). Axis2가 OC4J에 배치되고 Axis2에 서비스를 배포하면 Axis2 라이브러리 (JAX-WS 등)를 상속하지 않습니까?

도움이 되었습니까?

해결책

orion-application.xml에 이것을 추가하여 상속 된 라이브러리를 갈등시켜주십시오.

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

여기에 추가 : 기본적으로 가져온 Oracle Shared Library 제거 및/또는 교체

편집하다:
공유 라이브러리를 검색했는데 거기에 없다는 것을 알았습니다. jws-api.jar는 부팅 시간에로드되어 쉽게 제거 할 수 없습니다.

OC4J JAX-WS 라이브러리를 교체하십시오
OC4J는 JAX-WS에 대한 예비 지원을 받고 있습니다. 불행히도 OC4J Boot 중에 구식 JAX-WS API 및 Oracle의 구현이로드됨을 의미합니다. 이것은 공유 라이브러리가 OC4J Boot의 초기 단계에서 작동하기 전에도 발생합니다.
Boot-Time OC4J 라이브러리는 $ Oracle_Home/j2ee/home/oc4j.jar bootstrap jar의 boot.xml 파일로 구성됩니다. 이것을 제거하려면 :

1-copy the jar 파일로 $ {oracle.home}/webservices/lib/jaxws
2- OC4J.JAR 파일
3-Locate meta-inf/boot.xml
항아리와 함께이 라인의 4 개 장소 경로 :

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5 -repackage oc4j.jar (manifest.mf를 잊지 마십시오 -Jar -m meta -inf/manifest.mf 사용)

원본 기사 : 웹 서비스에 대한 OC4J 구성

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top