[ https://issues.apache.org/jira/browse/CXF-7596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Freeman Fang reassigned CXF-7596: --------------------------------- Assignee: Freeman Fang > ClassNotFoundException: javax.net.SocketFactory not found by > org.apache.cxf.cxf-rt-transports-http > -------------------------------------------------------------------------------------------------- > > Key: CXF-7596 > URL: https://issues.apache.org/jira/browse/CXF-7596 > Project: CXF > Issue Type: Bug > Components: OSGi > Affects Versions: 3.2.1 > Environment: I am running CXF OSGI Bundles in an Apache Felix > framework. > Reporter: Mehmet Can Cömert > Assignee: Freeman Fang > > For my resource server, I am writing a custom OpenID interceptor and this > interceptor needs to communicate with OpenID server to get some information > via HTTPS requests. > HTTPS Communication triggered from the Input Interceptor with a CXF Web > Client fails due to a OSGI Wiring Problem. > I have seen that "org.apache.cxf.cxf-rt-transports-http" Bundle Imports > "javax.net.ssl" > However an abstract class in the "javax.net" package > (javax.net.SocketFactory) is tired to be loaded as well. > This causes a ClassNotFoundException since the "javax.net" package is not > Imported in MANIFEST.MF. > If I add "javax.net" package to the Import-Package MANIFEST.MF file in the > org.apache.cxf.cxf-rt-transports-http.jar > I do not get any ClassNotFoundException and GET request to HTTPS endpoint can > be completed. > This is the Exception Stack Trace: > 2017-12-21T12:37:07.535Z ERROR > [qtp2011886533-56|org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver:114] > Error occurred during error handling, give up! > org.apache.cxf.interceptor.Fault: java.io.IOException: Error while > initializing secure socket > at > org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:75) > at > org.apache.cxf.phase.PhaseInterceptorChain.wrapExceptionAsFault(PhaseInterceptorChain.java:374) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:332) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) > at > org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) > at > org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:191) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:225) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) > at org.eclipse.jetty.server.Server.handle(Server.java:534) > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) > at > org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) > at > org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) > at > org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) > at java.lang.Thread.run(Thread.java:748) > Caused by: javax.ws.rs.ProcessingException: java.io.IOException: Error while > initializing secure socket > at > org.apache.cxf.jaxrs.client.AbstractClient.checkClientException(AbstractClient.java:611) > at > org.apache.cxf.jaxrs.client.AbstractClient.preProcessResult(AbstractClient.java:587) > at org.apache.cxf.jaxrs.client.WebClient.doResponse(WebClient.java:1114) > at > org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1051) > at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:897) > at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:866) > at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:431) > at > org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:135) > at > org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:130) > at > org.apache.cxf.jaxrs.client.SyncInvokerImpl.get(SyncInvokerImpl.java:50) > at > org.apache.cxf.jaxrs.client.spec.InvocationBuilderImpl.get(InvocationBuilderImpl.java:88) > at > com.helper.service.security.oauth2.impl.OAuth2HelperFactory.getEndpoints(OAuth2HelperFactory.java:211) > at > com.helper.service.security.oauth2.impl.OAuth2Helper.getPublicKey(OAuth2Helper.java:178) > at > com.helper.service.security.oauth2.impl.OAuth2Helper.authenticate(OAuth2Helper.java:139) > at > com.helper.bundle.rest.impl.dosgi.security.OpenIdAuthorizationInterceptor.handleMessage(OpenIdAuthorizationInterceptor.java:71) > at > org.apache.cxf.jaxrs.security.SimpleAuthorizingFilter.filter(SimpleAuthorizingFilter.java:39) > at > org.apache.cxf.jaxrs.utils.JAXRSUtils.runContainerRequestFilters(JAXRSUtils.java:1687) > at > org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:201) > at > org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:77) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) > ... 36 common frames omitted > Caused by: java.io.IOException: Error while initializing secure socket > at > org.apache.cxf.transport.https.HttpsURLConnectionFactory.createConnection(HttpsURLConnectionFactory.java:104) > at > org.apache.cxf.transport.http.URLConnectionHTTPConduit.createConnection(URLConnectionHTTPConduit.java:122) > at > org.apache.cxf.transport.http.URLConnectionHTTPConduit.setupConnection(URLConnectionHTTPConduit.java:126) > at > org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:504) > at > org.apache.cxf.interceptor.MessageSenderInterceptor.handleMessage(MessageSenderInterceptor.java:46) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) > at > org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:683) > at > org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1050) > ... 52 common frames omitted > Caused by: java.lang.NoClassDefFoundError: javax/net/SocketFactory > at > org.apache.cxf.transport.https.HttpsURLConnectionFactory.decorateWithTLS(HttpsURLConnectionFactory.java:155) > at > org.apache.cxf.transport.https.HttpsURLConnectionFactory.createConnection(HttpsURLConnectionFactory.java:99) > ... 59 common frames omitted > Caused by: java.lang.ClassNotFoundException: javax.net.SocketFactory not > found by org.apache.cxf.cxf-rt-transports-http [75] > at > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1610) > at > org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80) > at > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 61 common frames omitted -- This message was sent by Atlassian JIRA (v6.4.14#64029)