Настройка JAX-WS через SSL через CXF - PullRequest
0 голосов
/ 08 сентября 2010

эй, у меня только немного связанная проблема.Недавно внешний интерфейс SOAP, который генерировал клиент для, изменился на https.и у меня была под рукой старая кодовая база, которая генерировала файлы java через cxf и незащищенную, на основе http: // wsdl.Я поменял URI, и на стороне Maven все работает отлично, даже тестовый проход.но когда я использую эту банку в основном проекте, я получаю это:

Caused by: java.lang.NoSuchMethodError: javax.net.ssl.HttpsURLConnection.getSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
        at sun.net.www.protocol.https.DelegateHttpsURLConnection.getSSLSocketFactory(DelegateHttpsURLConnection.java:50)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
        at java.net.URL.openStream(URL.java:1010)
        at org.apache.cxf.resource.URIResolver.tryFileSystem(URIResolver.java:169)
        at org.apache.cxf.resource.URIResolver.resolve(URIResolver.java:119)
        at org.apache.cxf.resource.ExtendedURIResolver.resolve(ExtendedURIResolver.java:41)
        at org.apache.cxf.transport.TransportURIResolver.resolve(TransportURIResolver.java:134)
        at org.apache.cxf.catalog.CatalogWSDLLocator.getBaseInputSource(CatalogWSDLLocator.java:72)
        at org.apache.cxf.wsdl11.AbstractWrapperWSDLLocator.getBaseInputSource(AbstractWrapperWSDLLocator.java:57)
        at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:214)
        at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:179)
        at org.apache.cxf.wsdl11.WSDLServiceFactory.(WSDLServiceFactory.java:91)
        at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:207)
        at org.apache.cxf.jaxws.ServiceImpl.(ServiceImpl.java:150)
        at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:63)
        at javax.xml.ws.Service.(Service.java:56)
        at generated.webservices.com.gbm.sso.ssoclient.AuthenticationServiceInternal.(AuthenticationServiceInternal.java:49)
        at com.gbm.caprice.sso.client.CachingSSOClient.init(CachingSSOClient.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1536)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
        ... 45 more

Не могли бы вы помочь?

1 Ответ

0 голосов
/ 08 сентября 2010

Поскольку вы получаете NoSuchMethodError (который перехватывается / выбрасывается компилятором), я предлагаю использовать версию класса Java (в данном случае javax.net.ssl.HttpsURLConnection), которая не не имеет следующую подпись метода:

javax.net.ssl.HttpsURLConnection.getSSLSocketFactory()

Этот класс можно найти в JRE / lib jsse.jar (с момента написания JDK 1.6.0_21). Убедитесь, что ваши java-библиотеки и ваши Apache CXF-библиотеки объявлены в java CLASSPATH.

Вот чем я могу вам помочь, основываясь на вашем caused исключении.

...