ace-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike van Dongen <...@mikevandongen.nl>
Subject RE: How to query the distributions/targets with the Client Rest API?
Date Tue, 10 Sep 2013 20:42:11 GMT
Hi Ghania, 

I think the problem lies with the JSON you're sending.

It needs to look something like this:
{attributes: {left: "something", right: "something-else"}, tags: {}}

If this is not the case, could you show me the JSON you're sending?
Perhaps you could validate the JSON somewhere online aswell.

Good luck, 
Mike van Dongen.

> Date: Tue, 10 Sep 2013 12:06:20 -0700
> From: gferrag@yahoo.ca
> Subject: Re: How to query the distributions/targets with the Client Rest API?
> To: users@ace.apache.org
> 
> Hi every one,
> 
> Thank you very much Igor for your response.
> I found that tool very very useful. I tried a post on client/work to get the ID and a
query to get the targets and the distributions which worked. 
> But,  when I post on client/work/rest-25/distribution2target, I am still getting that
exception with this tool(see below the details of the exception). 
> 
> Just for your information, I have installed Apache Ace in my machine and on 2 other servers.
While doing the post for the association distribution2target, with google Chrom Advanced REST
client, I tried all combinations. I  mean I used left/right keys and then leftEndpoint/rightEndpoint
keys. Then, in the left I put a value I got from the distribution query, and in the right
I put a value I got from the target query.
> 
> I’m wondering if I installed the right version, or what I’m missing here? 
> Please if someone could help with this issue and thank you so much in advance for your
response,
> Best Regards,
> Ghania Ferrag
> 
> 
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
> <title>Error 500 INTERNAL_SERVER_ERROR</title>
> </head>
> <body><h2>HTTP ERROR 500</h2>
> <p>Problem accessing /client/work/rest-3/distribution2target. Reason:
> <pre>    INTERNAL_SERVER_ERROR</pre></p><h3>Caused by:</h3><pre>java.lang.NullPointerException
> at org.apache.ace.client.rest.RESTClientServlet.createRepositoryObject(RESTClientServlet.java:413)
> at org.apache.ace.client.rest.RESTClientServlet.doPost(RESTClientServlet.java:354)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> </pre>
> 
> 
> 
> ________________________________
>  De : "Passchier, I. (Igor)" <igor.passchier@tno.nl>
> À : ghania ferrag <gferrag@yahoo.ca>; "users@ace.apache.org" <users@ace.apache.org>

> Envoyé le : lundi 9 Septembre 2013 14h30
> Objet : Re: How to query the distributions/targets with the Client Rest API?
>  
> 
> Hi Ghania,
> 
> To debug any rest interface, you could use the rest api plugin for chrome. This enables
you to query any rest api on the fly, without programming the client side yourself. Probably
something similar is also available for Firefox, but I never tried to find that.
> 
> if you understand the details of the api in this way, you can implement it in your code
afterwards.
> 
> Regards,
> 
> Igor Passchier
> 
> ----- Reply message -----
> Van: "ghania ferrag" <gferrag@yahoo.ca>
> Aan: "users@ace.apache.org" <users@ace.apache.org>
> Onderwerp: How to query the distributions/targets with the Client Rest API?
> Datum: ma, sep. 9, 2013 18:09
> 
> Hi Mike and Thank you very much for your response :)
> 
> I tried "left" and "right" instead of "leftEndpoint" and "rightEndpoint", as parameters
in the form, but it is still not working with the same error message.
> I even created an other java client ( not using jersey) to communicate with REST API
of ACE, no luck..
> Is there a more suitable Client REST API than Jersey ?  A sample of code will really
help.
> Thank you again for your response,
> My best Regards,
> Ghania
> 
> 
> 
> ________________________________
> De : Mike van Dongen <ace@mikevandongen.nl>
> À : "users@ace.apache.org" <users@ace.apache.org>
> Envoyé le : dimanche 8 Septembre 2013 16h24
> Objet : RE: How to query the distributions/targets with the Client Rest API?
> 
> 
> Hi Ghania!
> I ran into the same problems when I started using ACE 1 or 2 months ago.
> 
> > Hi every one,
> >
> > Thank you Mike, Elmar for your response.
> >
> > I’m having an exception when doing a post to client/work/rest-ID/distrubution2target
with setting a form with the form parameters : leftEndpoint, rightEndpoint, leftCardinality,
rightCardinality
> >
> > The exception is <p>Problem accessing /client/work/rest-1/distribution2target.
Reason:
> > <pre>    Unable to parse repository object!</pre></p><h3>Caused
by:</h3><pre>java.io.IOException: Unable to parse repository object!
> > at org.apache.ace.client.rest.RESTClientServlet.getRepositoryValueObject(RESTClientServlet.java:486)
> > at org.apache.ace.client.rest.RESTClientServlet.doPost(RESTClientServlet.java:353)
> > …..Caused by: com.google.gson.JsonParseException: Expecting object found: "leftEndpoint"
> 
> If I recall correctly, you should use the parameters 'left' and 'right'.The values of
those parameters need to be the definitions of the distribution and target respectively.
> 
> > Also when I do I post to Client/work, I’m getting this with no sessionID :
> >  ["artifact", "feature", "distribution", "target", "artifact2feature", "feature2distribution",
"distribution2target"]
> > How to get the new Workspace with the sessionID, what I’m missing in my post?
> > Any idea how to fix this error?
> Once a new workspace is created, the client will be redirected to this workspace.The
URL you're being redirected to is "client/work/rest-ID", where rest-ID is the ID of your workspace.In
my case I was able to retrieve the URL that was last used and set it as the base URI.
> I'm unfamiliar with Jersey but this might help:https://jersey.java.net/nonav/apidocs/1.1.1-ea/jersey/com/sun/jersey/api/client/WebResource.html#getURI()
> 
> Good luck!Mike.
> > Thank you again for your response,
> > My Best Regards,
> > Ghania
> >
> >
> >
> > ________________________________
> >  De : Elmar Zeeb <elmar.zeeb@pipesbox.de>
> > À : users@ace.apache.org
> > Envoyé le : vendredi 6 Septembre 2013 3h15
> > Objet : Re: How to query the distributions/targets with the Client Rest API?
> >
> >
> > Hi Ghania,
> >
> > Am 05.09.2013 19:04, schrieb ghania ferrag:
> > > Hi all,
> > >
> > > I’m working on new web UI ( I used Vaadin for this UI) to allow our users
to send distributions to specific targets.
> > > In our UI we have just to display all existing distributions and I wonder how
to query the distributions with the Client Rest API?
> > > I read the following link:
> > > https://cwiki.apache.org/confluence/display/ACE/Client+REST+API
> > >
> > >
> > >
> > > Some one can tell me what is wrong with this REST-client code (I used Jersey):
> > > 1) I suspect the path is wrong: "ace/workspaceID/distribution" ?
> > > 2) or may be REST-server is not set ?
> > >
> > > import javax.ws.rs.core.UriBuilder;
> > > import com.sun.jersey.api.client.Client;
> > > import com.sun.jersey.api.client.WebResource;
> > > import com.sun.jersey.api.client.config.ClientConfig;
> > > import com.sun.jersey.api.client.config.DefaultClientConfig;
> > > public class ClientTest{
> > >    public static void main(String[] args) {
> > >    getDistributions();
> > >    }
> > >
> > >    public static void  getDistributions() {
> > >      ClientConfig config = new DefaultClientConfig();
> > >      Client client = Client.create(config);
> > >      WebResource service = client.resource(getBaseURI());
> > >      // Get JSONfor application
> > >      System.out.println(service.path("workspaceID").path("distribution").accept(MediaType.APPLICATION_JSON).get(String.class));
> > >      // Get XML for application
> > >      System.out.println(service.path("workspaceID").path("distribution").accept(MediaType.APPLICATION_XML).get(String.class));
> > >    }
> > >    private static URI getBaseURI() {
> > >      return UriBuilder.fromUri("http://localhost:8080/ace").build();
> > >    }
> > >
> > > Thanks and Regards,
> > > Ghania
> > You should create a association between a distribution and a target,
> > this is called distribution2target and is a resource that can be created
> > with a post to ace/workspaceID/distribution2target (see
> > http://ace.apache.org/user-doc/restapi.html).
> >
> > Regards,
> > Elmar
 		 	   		  
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message