Hi Bansal,

There is a basic problem here as you are trying to pass the parameters
also with your endpoint address.
Change your code to the following and try :

EndpointReference targetEPR = new
EndpointReference("http://localhost:8080/Axis2/rest/servicename/methodname";);

Options options = new Options();
options.setTo(targetEPR);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
options.setProperty(Constants.Configuration.ENABLE_REST,
Constants.VALUE_TRUE);

options.setProperty(Constants.Configuration.HTTP_METHOD,Constants.Configuration.HTTP_METHOD_GET);
ServiceClient client = new ServiceClient();
client.setOptions(options);

OMFactory factory = OMAbstractFactory.getOMFactory();
OMElement payload factory.createOMElement(methodName, null);
OMElement parameter = factory.createOMElement("param0", null, methodName);
parameter.setText("47");

OMElement result= call.sendReceive(payload);

The reason we want to do like this is we do everything the way as you
invoke with SOAP. Just a simple switch turns that to a REST call. Please
do not use RESTCall class anymore, its crap :).

-- Chinthaka

P.S. : I didn't write this code in an IDE. Compile errors are expected
features of this code ;)

Bansal, Vimal wrote:
> Hi All,
> I am trying to invoke my  webservice  which having a method take one 
> parameter using REST my client code snippets is
> 
> 
>    public class  RestClient
> {
> 
>     private  static EndpointReference targetEPR = new 
> EndpointReference("http://localhost:8080/Axis2/rest/servicename/methodname?param0=47";);
> 
>     public static void main(String[] args) {
>         try {
>          
>             RESTCall call = new RESTCall();
>             Options options = new Options();
>             options.setTo(targetEPR);
>             options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
>             options.setProperty(Constants.Configuration.ENABLE_REST, 
> Constants.VALUE_TRUE);
>             
> options.setProperty(Constants.Configuration.HTTP_METHOD,Constants.Configuration.HTTP_METHOD_GET);
>             call.setOptions(options);
>             OMElement result= call.sendReceive();
>               System.out.println(result.getFirstElement().getText());
>            }
>            catch (AxisFault axisFault) {
>              System.out.println(axisFault+":"+axisFault.getMessage());
>          }
>         catch (Exception axisFault) {
>              System.out.println(axisFault+":"+axisFault.getMessage());
>         }
>     }
>       I am able to call the method by browser by the same url that has-been 
> passed as a argument in EndPointReference()
>        but when I am calling this by client I am getting following error in 
> log file.
> 
> 
>        org.apache.axis2.AxisFault: For input string: "47?"; nested exception 
> is: 
>       java.lang.NumberFormatException: For input string: "47?"; nested 
> exception is: 
>       org.apache.axis2.AxisFault: For input string: "47?"; nested exception 
> is: 
>       java.lang.NumberFormatException: For input string: "47?"
>       at 
> org.apache.axis2.transport.http.util.RESTUtil.processGetRequest(RESTUtil.java:141)
>       at 
> org.apache.axis2.transport.http.AxisRESTServlet.doGet(AxisRESTServlet.java:36)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>       at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>       at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>       at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>       at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>       at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
>       at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>       at java.lang.Thread.run(Thread.java:534)
> 
>   as you can sea the "?" is add automaticaly I am not able to find  why it is 
> so is this any bug in axis2 or I am missing   
>   something.
>  Thanks
> Vimal Kumar Bansal

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to