It's all about the answers!

Ask a question

Troubles with REST extensions on Jetty


Fran Burgos (12312151) | asked Mar 25 '15, 6:22 a.m.
edited Mar 25 '15, 7:38 a.m.
I am trying to develop a REST extension following the article: 
https://jazz.net/library/LearnItem.jsp?href=content/docs/web-ui-programming/web-ui-todo-rest.html

But I got some troubles for deploying the examples on the Jetty Server:

java.lang.IllegalArgumentException: The com.example.jazz.todo.common bundle's plugin.xml file contains a <service> element that has a missing 'uri' attribute value.
	
at com.ibm.team.repository.common.transport.AbstractElementDescriptor.checkAttributeIsSet(AbstractElementDescriptor.java:196)
at com.ibm.team.repository.common.transport.AbstractElementDescriptor.checkAttributeIsSet(AbstractElementDescriptor.java:166)

What uri should be used?

Other messages:
[ERROR] 2015-03-25 11:11:17.550 - FrameworkManager: An error event has occurred involving the bundle "org.eclipse.emf.edit_2.5.0.v200906151043 [54]".
	
org.osgi.framework.BundleException: The bundle "org.eclipse.emf.edit_2.5.0.v200906151043 [54]" could not be resolved. Reason: Another singleton version selected: org.eclipse.emf.edit_2.6.0.v20100914-1218
	
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1317)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1301)

One answer



permanent link
Lawrence Smith (3764) | answered Mar 25 '15, 8:32 a.m.
JAZZ DEVELOPER
Hello... the referenced article is from 2007 and the plug-in API has changed.  If you have access to the jazz wiki, an article that shows how to create a REST service is here: https://jazz.net/wiki/bin/view/Main/JAFTutorialStepREST

This describes a REST service called as:

The plug-in format to create the service is...
 
 <plugin> 
   <extension point="com.ibm.team.repository.common.components">
        <component id="com.ibm.team.jaf.sdk.samples.hellojaf" name="Hello JAF">
            <service kind="MODELLED_REST" name="Hello JAF Rest Service"
                uri="com.ibm.team.jaf.sdk.samples.hellojaf.IHelloService"
                version="1"/>
        </component>
    </extension>
    
    <extension point="com.ibm.team.repository.service.serviceProvider">
        <serviceProvider componentId="com.ibm.team.jaf.sdk.samples.hellojaf" 
            implementationClass="com.ibm.team.jaf.sdk.samples.hellojaf.HelloService">
            <provides>
                <providedService interface="com.ibm.team.jaf.sdk.samples.hellojaf.IHelloService" />
            </provides>
        </serviceProvider>
    </extension>
    <extension point="com.ibm.team.jfs.app.appMode">
        <appMode
            delegatingAuthentication="true"
            transitioningToJAF="false">
        </appMode>
    </extension>
    <extension point="com.ibm.team.jazz.foundation.server.products">
        <product
            id="com.ibm.team.jaf.sdk.samples.hellojaf"
            name="Hello JAF"
            requiredJtsVersions="[4.0.0,6.1.0)"
            type="APPLICATION"
            version="4.0.0.0">
        </product>
    </extension>
</plugin>
The appmode and products extensions are not needed but I kept them here to keep the sample file complete.

The java file is: 
package com.ibm.team.jaf.sdk.samples.hellojaf;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.team.jfs.app.http.util.HttpConstants;
import com.ibm.team.repository.service.TeamRawService;

public class HelloService extends TeamRawService implements IHelloService {
    @Override
    public void perform_GET(String uri, HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setCharacterEncoding(HttpConstants.DEFAULT_ENCODING);
        response.setContentType(HttpConstants.CT_TEXT_PLAIN);
        PrintWriter writer = response.getWriter();
        writer.write("Hello world");
    }
}

Lawrence Smith [IBM]

Your answer


Register or to post your answer.