0
嘿,我只是有一些相關的問題。最近,生成客戶端的外部SOAP接口更改爲https一個。並且我手頭有一箇舊的代碼庫,它通過cxf和不安全的http://基於wsdl生成java文件。我chnaged uri,並在maven方面,即使通過測試,一切正常。但是當我在我的主要項目中使用這個罐子時,我得到這個:通過CXF配置JAX-WS over SSL通過CXF
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
你能幫忙嗎?
非常rightlty說。那是我所希望的。但是Apache CXF也是在classpath和jssee.jar中。但是,它仍然會給出這個錯誤。所以,我的猜測是它與Apache CXf覆蓋有關(意味着提供了一個不同的HttpsURLConnection實現),更令人擔憂的是如果它轉到jsse.jar中的HttpsURLConnection(使用jdk 1.6.0_16),它具有該方法。奇怪! – 2010-09-09 03:36:10
這是否意味着靜態btw? – 2010-09-09 07:40:51
不,該方法不是靜態的,Apache CXF從未實現自己的HttpsURLConnection。如果JAVA庫和CXF都在類路徑中,我不知道他們爲什麼看不到對方。 – 2010-09-09 09:35:28