Hi, It seems that we are missing an OSGi import for the tuscany-binding-rest-runtime bundle. Can you try to add the following to the Import-Package header?
org.apache.tuscany.sca.interfacedef.java;version="2.0.0" Meanwhile, please report the OSGi related issue via our JIRA and I can try to help you out. Thanks, Raymond ________________________________________________________________ Raymond Feng [email protected] Apache Tuscany PMC member and committer: tuscany.apache.org Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com Personal Web Site: www.enjoyjava.com ________________________________________________________________ On Jun 15, 2010, at 9:13 AM, Alexander Blotny wrote: > Hi, > > I have a problem to export a REST service via an OSGi bundle. Most of the > code is taken from the store example for binding.rest. > (http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html) > > I got following exception: > > java.lang.IllegalStateException: java.lang.NoClassDefFoundError: > org/apache/tuscany/sca/interfacedef/java/JavaInterface > at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:173) > at > org.apache.tuscany.sca.node.osgi.impl.NodeManager.bundleStarted(NodeManager.java:117) > at > org.apache.tuscany.sca.node.osgi.impl.NodeManager.bundleChanged(NodeManager.java:139) > at > org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:916) > at > org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220) > at > org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) > at > org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1350) > at > org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1301) > at > org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:362) > at > org.eclipse.osgi.framework.internal.core.AbstractBundle.updateWorker(AbstractBundle.java:625) > at > org.eclipse.osgi.framework.internal.core.AbstractBundle.update(AbstractBundle.java:572) > at > org.eclipse.osgi.framework.internal.core.AbstractBundle.update(AbstractBundle.java:555) > at > org.apache.felix.shell.impl.UpdateCommandImpl.execute(UpdateCommandImpl.java:96) > at > org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286) > at > org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184) > at java.lang.Thread.run(Thread.java:637) > Caused by: java.lang.NoClassDefFoundError: > org/apache/tuscany/sca/interfacedef/java/JavaInterface > at > org.apache.tuscany.sca.binding.rest.provider.RESTServiceBindingProvider.registerWithJAXRS(RESTServiceBindingProvider.java:217) > at > org.apache.tuscany.sca.binding.rest.provider.RESTServiceBindingProvider.start(RESTServiceBindingProvider.java:143) > at > org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl$1.run(CompositeActivatorImpl.java:423) > at java.security.AccessController.doPrivileged(Native Method) > at > org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.startEndpoint(CompositeActivatorImpl.java:421) > at > org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.start(CompositeActivatorImpl.java:377) > at > org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.start(CompositeActivatorImpl.java:309) > at org.apache.tuscany.sca.node.impl.NodeImpl.start(NodeImpl.java:147) > ... 15 more > > > The bundle has the following structure: > > META-INF MANIFEST.MF META-INF/maven META-INF/maven <no contents> > META-INF/maven/de.fhg.fokus.ngni.xposer.see.samples > META-INF/maven/de.fhg.fokus.ngni.xposer.see.samples <no contents> > META-INF/maven/de.fhg.fokus.ngni.xposer.see.samples/helloworld-exporter > pom.properties pom.xml OSGI-INF OSGI-INF <no contents> OSGI-INF/sca > bundle.componentType bundle.composite de de <no contents> de/fhg de/fhg <no > contents> de/fhg/fokus de/fhg/fokus <no contents> de/fhg/fokus/ngni > de/fhg/fokus/ngni <no contents> de/fhg/fokus/ngni/xposer > de/fhg/fokus/ngni/xposer <no contents> de/fhg/fokus/ngni/xposer/see > de/fhg/fokus/ngni/xposer/see <no contents> > de/fhg/fokus/ngni/xposer/see/samples de/fhg/fokus/ngni/xposer/see/samples <no > contents> de/fhg/fokus/ngni/xposer/see/samples/helloworld Activator.class > HelloREST.class de/fhg/fokus/ngni/xposer/see/samples/helloworld/impl > HelloRESTImpl.class > > bundle.composite: > > <composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" > xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://calculator.dosgi" name="HelloworldComposite"> > <component name="HelloworldComponent"> > <tuscany:implementation.osgi bundleSymbolicName="helloworld-exporter" > bundleVersion="0.0.1" /> <service > name="HelloworldServiceREST"> <tuscany:binding.rest > uri="http://localhost:8087/Helloworld"/> </service> > </component> > > > bundle.componentType: > > <componentType xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1"> > > <service name="HelloworldServiceREST"> <interface.java > interface="de.fhg.fokus.ngni.xposer.see.samples.helloworld.HelloREST"/> > </service> > </componentType> > > HelloREST.java: > > @Remotable public interface HelloREST { @GET String getAll(); > @GET @Path("{id}") String getItemById(@PathParam("id") String itemId); > @POST void addItem(Item item); @PUT void updateItem(Item > item); @DELETE @Path("{id}") void deleteItem(@PathParam("id") > String itemId); } > > > HelloRESTImpl.java: > > @Scope("COMPOSITE") public class HelloRESTImpl implements HelloREST { > @Init public void init() { System.out.println("INIT"); } > public void addItem(Item item) { System.out.println("add"); } > public void deleteItem(String itemId) { System.out.println("delete"); > } public String getAll() { return "ALL"; } public String > getItemById(String itemId) { return itemId; } public void > updateItem(Item item) { System.out.println("update"); } } > > > > Thanks > Alex
