代码之家  ›  专栏  ›  技术社区  ›  manocha_ak

通过cxf通过ssl配置jax-ws

  •  0
  • manocha_ak  · 技术社区  · 15 年前

    嘿,我只是有一些相关的问题。最近,正在为生成客户端的外部SOAP接口更改为HTTPS接口。我手头有一个旧的代码库,它通过不安全的、基于HTTP的WSDL生成Java文件。我修改了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 回复  |  直到 15 年前
        1
  •  0
  •   Buhake Sindi Tesnep    15 年前

    因为你得到了 无意识错误 (由编译器捕获/抛出),我的建议是,您使用的是Java类的版本(在这种情况下, javax.net.ssl.HttpsURLConnection )没有以下方法签名:

    javax.net.ssl.HttpsURLConnection.getSSLSocketFactory()
    

    这个类可以在jre/lib中找到 jsse.jar (自写作之日起,JDK 1.6.0 U 21)。请确保Java库和您的Apache代码库在Java类路径中声明。

    这就是我可以根据你的 caused 例外。

    推荐文章