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(Bun
dleContextImpl.java:916)
    at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.
java:220)
    at 
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(L
istenerQueue.java:149)
    at 
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivile
ged(Framework.java:1350)
    at 
org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framew
ork.java:1301)
    at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.j
ava:362)
    at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.updateWorker(Abstrac
tBundle.java:625)
    at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.update(AbstractBundl
e.java:572)
    at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.update(AbstractBundl
e.java:555)
    at 
org.apache.felix.shell.impl.UpdateCommandImpl.execute(UpdateCommandImpl.java
:96)
    at 
org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activa
tor.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.regi
sterWithJAXRS(RESTServiceBindingProvider.java:217)
    at 
org.apache.tuscany.sca.binding.rest.provider.RESTServiceBindingProvider.star
t(RESTServiceBindingProvider.java:143)
    at 
org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl$1.run(Compo
siteActivatorImpl.java:423)
    at java.security.AccessController.doPrivileged(Native Method)
    at 
org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.startEndpoi
nt(CompositeActivatorImpl.java:421)
    at 
org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.start(Compo
siteActivatorImpl.java:377)
    at 
org.apache.tuscany.sca.core.assembly.impl.CompositeActivatorImpl.start(Compo
siteActivatorImpl.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

Reply via email to