좋은 시간!Weblogic이 CXF의 SSL 구성을 삭제합니까?
저는 SSL로 보호 된 원격 서비스와 통신하기 위해 간단한 CXF 클라이언트를 만들었습니다. JUnit 테스트를 실행하면 실수없이 핸드 셰이크가 수행되고 통신은 정상적으로 진행됩니다.
나는 웹 로직 서버 (11g)에 내 응용 프로그램을 배포하고 요청을 수행하는 경우
<http:conduit name="<service_namespace_port>.http-conduit">
<http:client AutoRedirect="true" Connection="Keep-Alive"/>
<http:tlsClientParameters secureSocketProtocol="SSL" disableCNCheck="true">
<sec:keyManagers keyPassword="pass">
<sec:keyStore type="JKS" password="pass" file="keystore"/>
</sec:keyManagers>
<sec:trustManagers>
<sec:keyStore type="JKS" password="pass" file="truststore"/>
</sec:trustManagers>
<sec:cipherSuitesFilter>
<sec:include>.*_EXPORT_.*</sec:include>
<sec:include>.*_EXPORT1024_.*</sec:include>
<sec:include>.*_WITH_DES_.*</sec:include>
<sec:include>.*_WITH_AES_.*</sec:include>
<sec:include>.*_WITH_NULL_.*</sec:include>
<sec:exclude>.*_DH_anon_.*</sec:exclude>
</sec:cipherSuitesFilter>
</http:tlsClientParameters>
는, 핸드 쉐이크는 "요청 대상에 유효한 인증 경로를 찾을 수 없습니다"라는 오류와 함께 실패합니다. "-Djavax.net.debug = all"이 얻은 로그에 따르면 Weblogic은 구성된 CXF 클라이언트의 truststore를 무시하고 Java cacert (/ jre/lib/security)를 얻습니다.
나는 웹 로직-application.xml을에서 선 <package-name>javax.jws.*</package-name>
를 작성하려고했지만,이 오류 "org.springframework.beans.MethodInvocationException하여 응용 프로그램을 죽이고 : 부동산의 'serviceClass는'예외를 던져; 중첩 된 예외는 자바이다. lang.NoClassDefFoundError : javax/jws/WebService "를 참조하십시오.
성직자 - 서버 통신에 참여하지 않기를 weblogic에 알리는 방법을 제안 해 줄 수 있습니까?
편집.
<http:conduit name="<service_namespace_port>.http-conduit">
<http:client AutoRedirect="true" Connection="Keep-Alive"/>
<http:tlsClientParameters secureSocketProtocol="SSL" disableCNCheck="true">
<sec:keyManagers keyPassword="pass">
<sec:keyStore type="JKS" password="pass" file="keystore"/>
</sec:keyManagers>
<sec:trustManagers>
<sec:keyStore type="JKS" password="pass" file="truststore"/>
</sec:trustManagers>
<sec:cipherSuitesFilter>
<sec:include>.*_EXPORT_.*</sec:include>
<sec:include>.*_EXPORT1024_.*</sec:include>
<sec:include>.*_WITH_DES_.*</sec:include>
<sec:include>.*_WITH_AES_.*</sec:include>
<sec:include>.*_WITH_NULL_.*</sec:include>
<sec:exclude>.*_DH_anon_.*</sec:exclude>
</sec:cipherSuitesFilter>
</http:tlsClientParameters>
</http:conduit>
<jaxws:client id="service"
serviceClass="foo.bar.ServiceClass"
address="<service_url>" />
<bean id="client" class="foo.bar.ClientClass"/>
편집이 전체 클라이언트 구성 (스프링 CXF)입니다. this post에 따라 <http:conduit name="<service_namespace_port>.http-conduit">
을 <http:conduit name="*.http-conduit">
으로 변경했습니다. 이제 "중첩 예외는 java.lang.RuntimeException : 보안 XMLInputFactory를 만들 수 없습니다."라는 오류 메시지가 나타납니다. 얼마 전이 오류가 발생했고 발견 한 해결책은 using the system property입니다. 그러나 그것은 더 이상 적합하지 않습니다 ... 아무도, 이것을 해결하는 방법을 알고 있습니까?
Apache CXF 웹 사이트에서 weblogic의 특정 서버 구성을 확인 했습니까? http://cxf.apache.org/docs/application-server-specific-configuration-guide.html –
예, 질문에서 썼 듯이이 구성은 배포를 중지합니다. "javax.jws. *"줄이있는 단락을 참조하십시오. 이 문제를 해결하는 방법을 알고 계십니까? – Dmitry
Weblogic이 EAR/WAR에서'javax.jws. *'패키지를 선호한다고 말하면서 JAX-WS 라이브러리를 어플리케이션에 포함 시켰습니까? –