|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
RESTful web serviceHello,
I am facing a problem implementing simple calculator using jersey (JAX-RS) https://jersey.dev.java.net/use/getting-started.html Could any one help me out how to define 2 integer parameter and integer return value for GET http method. Thanks in advance, -- Motaz K. Saad |
|
|
Re: RESTful web serviceHi Motaz,
Please try this attached Resource Class. It contains following method that does the calculator function and returns an xml representation of the result. @GET @ProduceMime("application/xml") public String sum(@QueryParam ("x") Integer x, @QueryParam ("y") Integer y) { return "<result type=\"int\">"+(x+y)+"</result>"; } If you want to know more on tools for building RESTful Web Services, here is the link http://www.netbeans.org/kb/60/websvc/rest.html Thanks Ayub Motaz K. Saad wrote: > Hello, > > I am facing a problem implementing simple calculator using jersey > (JAX-RS) https://jersey.dev.java.net/use/getting-started.html > Could any one help me out how to define 2 integer parameter and > integer return value for GET http method. > > Thanks in advance, > -- > Motaz K. Saad > /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common * Development and Distribution License("CDDL") (collectively, the * "License"). You may not use this file except in compliance with the * License. You can obtain a copy of the License at * http://www.netbeans.org/cddl-gplv2.html * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the * specific language governing permissions and limitations under the * License. When distributing the software, include this License Header * Notice in each file and include the License file at * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this * particular file as subject to the "Classpath" exception as provided * by Sun in the GPL Version 2 section of the License file that * accompanied this code. If applicable, add the following below the * License Header, with the fields enclosed by brackets [] replaced by * your own identifying information: * "Portions Copyrighted [year] [name of copyright owner]" * * Contributor(s): * * The Original Software is NetBeans. The Initial Developer of the Original * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun * Microsystems, Inc. All Rights Reserved. * * If you wish your version of this file to be governed by only the CDDL * or only the GPL Version 2, indicate your decision by adding * "[Contributor] elects to include this software in this distribution * under the [CDDL or GPL Version 2] license." If you do not indicate a * single choice of license, a recipient has the option to distribute * your version of this file under either the CDDL, the GPL Version 2 or * to extend the choice of license to its licensees as provided above. * However, if you add GPL Version 2 code and therefore, elected the GPL * Version 2 license, then the option applies only if the new code is * made subject to such option by the copyright holder. */ package helloworld; import javax.ws.rs.Path; import javax.ws.rs.GET; import javax.ws.rs.PUT; import javax.ws.rs.ProduceMime; import javax.ws.rs.ConsumeMime; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; /** * REST Web Service * * @author __USER__ */ @Path("/calc") public class CalculatorResource { @Context private UriInfo context; /** Creates a new instance of HelloWorldResource */ public CalculatorResource() { } /** * Retrieves representation of an instance of helloworld.HelloWorldResource * @return an instance of java.lang.String */ @GET @ProduceMime("application/xml") public String sum(@QueryParam ("x") Integer x, @QueryParam ("y") Integer y) { return "<result type=\"int\">"+(x+y)+"</result>"; } /** * PUT method for updating or creating an instance of HelloWorldResource * @param content representation for the resource * @return an HTTP response with content of the updated or created resource. */ @PUT @ConsumeMime("application/xml") public void putXml(String content) { } } |
|
|
Re: RESTful web serviceThanks very much, I really appreciate your help
the URI for the resource for the calculator below is like this http://localhost:8080/mws/resources/add?x=3&y=5 what if I want to pass Integer array as parameter ? what it will look like ? Motaz On Mon, Apr 21, 2008 at 11:42 PM, Ayub Khan <Ayub.Khan@...> wrote: Hi Motaz, |
|
|
Re: RESTful web serviceHi Motaz,
You could use one of these approaches using MatrixParam. You could infact replace MatrixParam and use QueryParam as earlier. @GET @ProduceMime("application/xml") public String add(@MatrixParam ("int_array") String intArray) { int total = 0; String[] ints = intArray.split(","); for(String i:ints) total += Integer.parseInt(i); return "<result type=\"int\">"+total+"</result>"; } Request: http://localhost:8080/HelloWorld/resources/calc;int_array=1,2,3,4,5 Response: <result type="int">15</result> Alternatively, you could use a PUT/POST with content like <add>1,2,3</add> or <add> <array type="int"> <item>1</item> <item>2</item> </array> </add> Only issue with these approach is you need to use XML parser. Thanks Ayub Motaz K. Saad wrote: > Thanks very much, I really appreciate your help > > the URI for the resource for the calculator below is like this > > http://localhost:8080/mws/resources/add?x=3&y=5 > <http://localhost:8080/mws/resources/add?x=3&y=5> > > what if I want to pass Integer array as parameter ? what it will look > like ? > > Motaz > > On Mon, Apr 21, 2008 at 11:42 PM, Ayub Khan <Ayub.Khan@... > <mailto:Ayub.Khan@...>> wrote: > > Hi Motaz, > > Please try this attached Resource Class. It contains following > method that does the calculator function and returns an xml > representation of the result. > > @GET > @ProduceMime("application/xml") > public String sum(@QueryParam ("x") Integer x, @QueryParam ("y") > Integer y) { > return "<result type=\"int\">"+(x+y)+"</result>"; > } > > If you want to know more on tools for building RESTful Web > Services, here is the link > http://www.netbeans.org/kb/60/websvc/rest.html > > Thanks > Ayub > > > Motaz K. Saad wrote: > > Hello, > > I am facing a problem implementing simple calculator using > jersey (JAX-RS) > https://jersey.dev.java.net/use/getting-started.html > Could any one help me out how to define 2 integer parameter > and integer return value for GET http method. > > Thanks in advance, > -- > Motaz K. Saad > > > > /* > * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. > * > * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved. > * > * The contents of this file are subject to the terms of either > the GNU > * General Public License Version 2 only ("GPL") or the Common > * Development and Distribution License("CDDL") (collectively, the > * "License"). You may not use this file except in compliance with the > * License. You can obtain a copy of the License at > * http://www.netbeans.org/cddl-gplv2.html > * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the > * specific language governing permissions and limitations under the > * License. When distributing the software, include this License > Header > * Notice in each file and include the License file at > * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this > * particular file as subject to the "Classpath" exception as provided > * by Sun in the GPL Version 2 section of the License file that > * accompanied this code. If applicable, add the following below the > * License Header, with the fields enclosed by brackets [] replaced by > * your own identifying information: > * "Portions Copyrighted [year] [name of copyright owner]" > * > * Contributor(s): > * > * The Original Software is NetBeans. The Initial Developer of the > Original > * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun > * Microsystems, Inc. All Rights Reserved. > * > * If you wish your version of this file to be governed by only > the CDDL > * or only the GPL Version 2, indicate your decision by adding > * "[Contributor] elects to include this software in this distribution > * under the [CDDL or GPL Version 2] license." If you do not > indicate a > * single choice of license, a recipient has the option to distribute > * your version of this file under either the CDDL, the GPL > Version 2 or > * to extend the choice of license to its licensees as provided above. > * However, if you add GPL Version 2 code and therefore, elected > the GPL > * Version 2 license, then the option applies only if the new code is > * made subject to such option by the copyright holder. > */ > > package helloworld; > > import javax.ws.rs.Path; > import javax.ws.rs.GET; > import javax.ws.rs.PUT; > import javax.ws.rs.ProduceMime; > import javax.ws.rs.ConsumeMime; > import javax.ws.rs.QueryParam; > import javax.ws.rs.core.Context; > import javax.ws.rs.core.UriInfo; > > /** > * REST Web Service > * > * @author __USER__ > */ > > @Path("/calc") > public class CalculatorResource { > @Context > private UriInfo context; > > /** Creates a new instance of HelloWorldResource */ > public CalculatorResource() { > } > /** > * Retrieves representation of an instance of > helloworld.HelloWorldResource > * @return an instance of java.lang.String > */ > @GET > @ProduceMime("application/xml") > public String sum(@QueryParam ("x") Integer x, @QueryParam > ("y") Integer y) { > return "<result type=\"int\">"+(x+y)+"</result>"; > } > > /** > * PUT method for updating or creating an instance of > HelloWorldResource > * @param content representation for the resource > * @return an HTTP response with content of the updated or > created resource. > */ > @PUT > @ConsumeMime("application/xml") > public void putXml(String content) { > } > } > > > |
| Free Forum Powered by Nabble | Forum Help |