使用基于OSGi的开源平台开发APP,用Karaf做容器,使用一个第三方库时报错。
基本情况介绍:开发使用的平台是基于OSGi的,运行在Karaf里。现在要使用一个第三方的bundle(JAR包),
Karaf加载这个JAR包时是没问题的:
2015-12-11 16:45:37,825 | INFO | raf-3.0.4/deploy | fileinstall | 7 - org.apache.felix.fileinstall - 3.5.0 | Installing bundle org.pacesys.openstack4j / 2.0.92015-12-11 16:49:56,917 | INFO | tp1179238011-423 | OpenStackConnector | 178 - org.onosproject.onos-app-xuanwulake - 1.3.0.SNAPSHOT | launchVM, name = dynFW, type = vFW
2015-12-11 16:49:57,195 | ERROR | tp1179238011-423 | ContainerResponse | 131 - com.sun.jersey.jersey-server - 1.19.0 | The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoClassDefFoundError: javax/xml/parsers/DocumentBuilderFactory
at org.glassfish.jersey.message.internal.MessagingBinders$MessageBodyProviders.configure(MessagingBinders.java:140)
at org.glassfish.hk2.utilities.binding.AbstractBinder.bind(AbstractBinder.java:171)
at org.glassfish.hk2.utilities.binding.AbstractBinder.install(AbstractBinder.java:315)
at org.glassfish.jersey.client.ClientBinder.configure(ClientBinder.java:116)
at org.glassfish.hk2.utilities.binding.AbstractBinder.bind(AbstractBinder.java:171)
at org.glassfish.jersey.internal.inject.Injections.bind(Injections.java:157)
at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:147)
at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:137)
at org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:385)
at org.glassfish.jersey.client.ClientConfig$State.access$000(ClientConfig.java:87)
at org.glassfish.jersey.client.ClientConfig$State$3.get(ClientConfig.java:119)
at org.glassfish.jersey.client.ClientConfig$State$3.get(ClientConfig.java:116)
at org.glassfish.jersey.internal.util.collection.Values$LazyValueImpl.get(Values.java:322)
at org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:722)
at org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:281)
at org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:125)
at org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:98)
at org.glassfish.jersey.client.JerseyInvocation.<init>(JerseyInvocation.java:91)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
at org.openstack4j.connectors.jersey2.HttpCommand.execute(HttpCommand.java:79)
at org.openstack4j.connectors.jersey2.HttpExecutorServiceImpl.invokeRequest(HttpExecutorServiceImpl.java:65)
at org.openstack4j.connectors.jersey2.HttpExecutorServiceImpl.invoke(HttpExecutorServiceImpl.java:56)
at org.openstack4j.connectors.jersey2.HttpExecutorServiceImpl.execute(HttpExecutorServiceImpl.java:33)
at org.openstack4j.core.transport.internal.HttpExecutor.execute(HttpExecutor.java:51)
at org.openstack4j.openstack.internal.OSAuthenticator.authenticateV2(OSAuthenticator.java:117)
at org.openstack4j.openstack.internal.OSAuthenticator.invoke(OSAuthenticator.java:50)
at org.openstack4j.openstack.client.OSClientBuilder$ClientV2.authenticate(OSClientBuilder.java:117)
at org.openstack4j.openstack.client.OSClientBuilder$ClientV2.authenticate(OSClientBuilder.java:81)
at org.onosproject.xuanwulake.service.OpenStackConnector.launchVM(OpenStackConnector.java:54)
at org.onosproject.xuanwulake.service.WebService.addVNF(WebService.java:155)
at org.onosproject.xuanwulake.service.VNFWebResource.addVNF(VNFWebResource.java:154)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_66]
at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_66]
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)[131:com.sun.jersey.jersey-server:1.19.0]
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)[131:com.sun.jersey.jersey-server:1.19.0]
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)[131:com.sun.jersey.jersey-server:1.19.0]
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)[131:com.sun.jersey.jersey-server:1.19.0]
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)[132:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)[132:com.sun.jersey.servlet:1.19.0]
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)[132:com.sun.jersey.servlet:1.19.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)[99:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)[104:org.eclipse.jetty.aggregate.jetty-all-server:8.1.17.v20150415]
2015-12-11 16:45:44,931 | INFO | raf-3.0.4/deploy | fileinstall | 7 - org.apache.felix.fileinstall - 3.5.0 | Started bundle: file:/home/sdn/Applications/apache-karaf-3.0.4/deploy/org.pacesys.openstack4j_2.0.9.jar