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