Details
Description
When I tried to name the webservice method parameters and started my RCP Application I got the exception pasted below. I got it working by taking the servicemix.asm bundle of the Mutlibundle distribution 1.5.0 and defining it in the MANIFEST.MF of my plugin.
Please feel free to tell me what I need to do better in case this is no DOSGi problem.
Stacktrace
java.lang.RuntimeException: No ASM ClassWriterFoundjava.lang.RuntimeException: No ASM ClassWriterFound
at org.apache.cxf.common.util.ASMHelper.createClassWriter(ASMHelper.java:269) ~[cxf-api-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.WrapperClassGenerator.createWrapperClass(WrapperClassGenerator.java:151) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.WrapperClassGenerator.generate(WrapperClassGenerator.java:122) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.generatedWrapperBeanClass(JaxWsServiceFactoryBean.java:683) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.getExtraClass(JaxWsServiceFactoryBean.java:653) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:484) ~[cxf-rt-core-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:704) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:550) ~[cxf-rt-core-2.7.8.jar:2.7.8]
at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265) ~[cxf-rt-core-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:215) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102) ~[cxf-rt-frontend-simple-2.7.8.jar:2.7.8]
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159) ~[cxf-rt-frontend-simple-2.7.8.jar:2.7.8]
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211) ~[cxf-rt-frontend-jaxws-2.7.8.jar:2.7.8]
at org.apache.cxf.dosgi.dsw.handlers.AbstractPojoConfigurationTypeHandler.createServerFromFactory(AbstractPojoConfigurationTypeHandler.java:191) ~[cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.handlers.PojoConfigurationTypeHandler.createServer(PojoConfigurationTypeHandler.java:119) ~[cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportInterfaces(RemoteServiceAdminCore.java:184) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:140) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:59) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:57) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_51]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:57) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:41) [cxf-dosgi-ri-dsw-cxf-1.6.0.jar:na]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.exportServiceUsingRemoteServiceAdmin(TopologyManagerExport.java:185) [cxf-dosgi-ri-topology-manager-1.6.0.jar:na]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport.doExportService(TopologyManagerExport.java:168) [cxf-dosgi-ri-topology-manager-1.6.0.jar:na]
at org.apache.cxf.dosgi.topologymanager.exporter.TopologyManagerExport$3.run(TopologyManagerExport.java:143) [cxf-dosgi-ri-topology-manager-1.6.0.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/ClassWriter
at org.apache.cxf.common.util.ASMHelper.getASMClassWriterClass(ASMHelper.java:86) ~[cxf-api-2.7.8.jar:2.7.8]
at org.apache.cxf.common.util.ASMHelper.getASMClass(ASMHelper.java:97) ~[cxf-api-2.7.8.jar:2.7.8]
at org.apache.cxf.common.util.ASMHelper.createClassWriter(ASMHelper.java:266) ~[cxf-api-2.7.8.jar:2.7.8]
... 27 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassWriter
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) ~[org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) ~[org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) ~[org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) ~[org.eclipse.osgi_3.8.2.v20130124-134944.jar:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ~[na:1.7.0_51]
... 30 common frames omitted
14:44
My proof of concept webservice interface:
package net.something.wsconnector.ws;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
@WebService(targetNamespace = "http://olp/", name="OlpService")
public interface OlpService
My MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Olpconnector
Bundle-SymbolicName: net.something.wsconnector;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: net.something.wsconnector.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.equinox.console;bundle-version="1.0.0",
org.apache.felix.gogo.shell;bundle-version="0.8.0",
org.apache.felix.gogo.command;bundle-version="0.8.0",
org.apache.felix.gogo.runtime;bundle-version="0.8.0",
org.ops4j.base.lang;bundle-version="1.4.0",
— added line
org.apache.servicemix.bundles.asm;bundle-version="3.3.1",
— /added line
cxf-dosgi-ri-osgi-api;bundle-version="1.6.0",
cxf-dosgi-ri-topology-manager;bundle-version="1.6.0",
cxf-dosgi-ri-dsw-cxf;bundle-version="1.6.0"