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
-----Original Message-----
From: Bansal, Vimal [mailto:[EMAIL PROTECTED]
Sent: Monday, July 17, 2006 12:38 PM
To: [email protected]
Subject: RE: problem in invoke the webservice using REST Style by client
program
Hi All,
now i am using latest nightly build axis2.war at server side but problem is
same as i am using RESTCall at client side but
in nightly build axis2.war API i did'nt find any RESTCall class.can any one
send me the client code for access my webservice.
using RESTCall.
-----Original Message-----
From: Kinichiro Inoguchi [mailto:[EMAIL PROTECTED]
Sent: Friday, July 14, 2006 4:29 PM
To: [email protected]
Subject: RE: problem in invoke the webservice using REST Style by client
program
Hi, Vimal.
Could you try latest nightly build axis2.war in server side, please ?
--- "Bansal, Vimal" <[EMAIL PROTECTED]> wrote:
> Hi kinichiro,
> as per my earlier mail I am getting the access for my service using
> following url by browser
> http://localhost:8080/Axis2/rest/servicename/methodname?param0=23
> output is:-
> - <ns:methodnameResponse xmlns:ns="http://org.apache.axis2/xsd">
> <return>hfdj</return>
> <return>dfds</return>
> <return>Andrews</return>
> <return>pvcv</return>
> <return>21</return>
> </ns:methodnameResponse >
> this is nice .
> now I am writing the client program for same my code snippets is
> following:
>
> public class RestClient
> {
> private static EndpointReference targetEPR = new
>
EndpointReference("http://localhost:8080/Axis2/rest/servicename/methodname?param0=34");
>
> public static void main(String[] args) {
> try {
>
>
> //ServiceClient sender = null;
> 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);
> System.out.println("$$$ B4 sendReceive ... $$$ ");
> OMElement result= call.sendReceive();
> System.out.println("$$$ After 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());
> }
> }
> but i am not getting output I am getting following error message
> at dos prompt.
> org.apache.axis2.AxisFault: Incoming message input stream is
> null:Incoming message input stream is null
> what I am missing.url is same for both cases.
> Thanks
> Vimal Bansal
>
> -----Original Message-----
> From: Bansal, Vimal [mailto:[EMAIL PROTECTED]
> Sent: Friday, July 14, 2006 9:32 AM
> To: [email protected]
> Subject: RE: problem to invoke the webservice using REST Style
>
>
> Hi kinichiro,
> Thanks for your response, now problem is fix and i am getting the
> expected output.one can use RPCMessageReceiver for any
> cases,the men thing is that i realize one shoud have only one method
> define in your service class,in case of more than one
> method you would'nt get the excees of all the method.
> you can access your method via following url:-
> http://localhost:8080/Axis2/rest/servicename/methodname?paramo=23
> remember parameter other than param0 in url is not allowed.
> thanks
> Vimal Bansal.
>
>
> -----Original Message-----
> From: Kinichiro Inoguchi [mailto:[EMAIL PROTECTED]
> Sent: Thursday, July 13, 2006 10:26 AM
> To: [email protected]
> Subject: RE: problem to invoke the webservice using REST Style
>
>
> Hi Bansal,
>
> Test class is like this.
>
> package test;
> public class MyService1 {
> public void ping(int element) {
> System.out.println("value of input value = "+ element);
> }
>
> public int echo(int element) {
> return element * element;
> }
> }
>
> services.xml is like this.
> <service name="ComplexTest">
> <description>test service.</description>
> <parameter name="ServiceClass"
> locked="false">test.MyService1</parameter>
> <operation name="ping">
> <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
> </operation>
> <operation name="echo">
> <messageReceiver
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
> </operation>
> </service>
>
> You can call this by REST.
> http://localhost:8080/axis2/rest/MyService1/ping?element=15
>
> I could see this log message in tomcat stdout.log
> value of input value = 15
>
> It worked fine.
>
> Regards,
> kinichiro
>
> --- "Bansal, Vimal" <[EMAIL PROTECTED]> wrote:
>
> > Hi kinichiro,
> > I have tried for this also but problem is same. can you check the
> > link below,
> >
> >
>
http://ws.apache.org/axis2/0_95/api/org/apache/axis2/rpc/receivers/class-use/RPCInOnlyMessageReceiver.html
> >
> > in this it is clearly mention that there is no use of
> > RpcInOnlyMessageReceiver.finding the method in service may be the
> > problem.
> > http://localhost:8080/axis2/rest/ServiceName/setData?num=10
> > can you send me the running sample code including
> service.xml,client
> > and service if you have.
> > Thanks
> > Vimal Bansal.
> >
> > -----Original Message-----
> > From: Kinichiro Inoguchi [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, July 12, 2006 7:32 PM
> > To: [email protected]
> > Subject: RE: problem to invoke the webservice using RESTt Style
> >
> >
> > Hi Bansal,
> >
> > You must use RPCInOnlyMessageReceiver instead of
> RPCMessageReceiver,
> > because your method is void.
> >
> > Regards,
> > kinichiro
> >
> > --- "Bansal, Vimal" <[EMAIL PROTECTED]> wrote:
> >
> > > Hi kinichiro,
> > > Thanks again, tried my all stuff now I have just created one
> method
> > > in my service Say setdata(in num) my code snippets is below just
> > for
> > > testing purpose
> > >
> > > public void setData(int num) {
> > > System.out.println("$$$$Entry in setData");
> > > System.out.println("value of num ="+ num);
> > > System.out.println("$$$$Exit from setData");
> > > }
> > > and i am passing parameter via REST like this,
> > > http://localhost:8080/axis2/rest/ServiceName/setData?num=10
> > > but i have the same problem i am not getting access of setdata()
> > > method.
> > > i have also created the client for this when I am running it by
> dos
> > > prompt I am getting this message
> > > org.apache.axis2.AxisFault: Incoming message input stream is
> > > null:Incoming mesas
> > > gee input stream is null
> > > is there any changes needed to services.xml below is the code for
> > > service.xml
> > > <service >
> > >
> > > <description>
> > > This is a sample Test Service with one operations setdata
> > > </description>
> > > <parameter name="ServiceClass"
> > > locked="false">com.poc.service.TestService</parameter>
> > > <operation name="setData">
> > > <messageReceiver
> > > class="org.apache.axis2.rpc.receivers.RPCMessageReceiver/>
> > > </operation>
> > >
> > > </service >
> > > i think passing the parameter may be problem
> > > Thanks
> > > Vimal Bansal
> > >
> > > -----Original Message-----
> > > From: Kinichiro Inoguchi [mailto:[EMAIL PROTECTED]
> > > Sent: Tuesday, July 11, 2006 7:15 PM
> > > To: [email protected]
> > > Subject: RE: problem to invoke the webservice using RESTt Style
> > >
> > >
> > > Hi Vimal,
> > >
> > > You can pass parameter via REST like this,
> > >
> >
>
http://localhost:8080/axis2/rest/YourService/getProductDetails?productid=12345
> > >
> > > And if you still get internal error,
> > > could you try change return value String[] to String, please ?
> > >
> > > Regards,
> > > kinichiro
> > >
> > > --- "Bansal, Vimal" <[EMAIL PROTECTED]> wrote:
> > >
> > > > Hi Kinichiro,
> > > > Thanks for your response. I tried the service with method
> > returning
> > > > String type or String[] type. But the real problem is when i am
> > > > passing a paramter. For example: String[]
> getProductDetails(long
> > > > productid);
> > > >
> > > > The array is basically an array of all the values reteieved
> from
> > a
> > > > database, like returnVal[0] will be the first element,
> > returnVal[1]
> > > > will be the next and so on. The returning type is not an issue.
> > Is
> > > > the paramter (productid as in my example) creating this
> problem?
> > > How
> > > > can we pass paramters?
> > > >
> > > > Regards,
> > > > Vimal.
> > > >
> > > > -----Original Message-----
> > > > From: Kinichiro Inoguchi [mailto:[EMAIL PROTECTED]
> > > > Sent: Tuesday, July 11, 2006 3:40 PM
> > > > To: [email protected]
> > > > Subject: Re: problem to invoke the webservice using RESTt Style
> > > >
> > > >
> > > > Hi,
> > > >
> > > > If you change your method from String[] getValue(long id)
> > > > to String getValue(long id), does it work ?
> > > >
> > > > I faced same kind of issue, and created JIRA.
> > > > http://issues.apache.org/jira/browse/AXIS2-880
> > > >
> > > > Regards,
> > > > kinichiro
> > > >
> > > > --- "Bansal, Vimal" <[EMAIL PROTECTED]> wrote:
> > > >
> > > > >
> > > > > Hi All,
> > > > >
> > > > > I am a new user of Web Services. I am using Axis2 for
> > > implementing
> > > > > services. I want to use REST style of Web services. My
> service
> > > > class,
> > > > > say MyServices have to service methods:
> > > > > String getAllValues() and String[] getValue(long id).
> > > > > The first service method, that has no parameters, is working
> > fine
> > > > > when invoked by a client. I am accessing this service through
> > the
> > > > > link:
> http://localhost:8080/Axis2/rest/servicename/getAllValues
> > > > > I am getting the following result:
> > > > > <ns:getAllValuesdsResponse
> > xmlns:ns="http://service.poc.com/xsd">
> > >
> > > > > <return>[33, 34, 35, 36, 37, 38]</return>
> > > > > </ns:getAllValuessResponse>
> > > > > My problem is that when I am trying to access the second
> > > > service(that
> > > > > has one parameter), through the link
> > > > > http://localhost:8080/Axis2/rest/servicename/getValue am
> > getting
> > > an
> > > > > axis page showing "Internal server error". How can I access
> > this
> > > > web
> > > > > service? Is there some way to pass the parameter through url?
> > > > > My client class is having following code snippets:
> > > > >
> > > > > private static EndpointReference targetEPR = new
> > > > >
> > > >
> > >
> >
>
EndpointReference("http://localhost:8080/rest/userservice2/getValue");
> > > > > ...
> > > > > public static void main(String[] args) {
> > > > > try {
> > > > > ServiceClient sender = null;
> > > > > 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);
> > > > > sender = new ServiceClient();
> > > > > sender.setOptions(options);
> > > > > OMElement result= sender.sendReceive(getPayload());
> > > > > }
> > > > > catch(Exception e){ }
> > > > > }
> > > > > ...
> > > > > private static OMElement getPayload() throws Exception{
> > > > > OMFactory fac = OMAbstractFactory.getOMFactory();
> > > > > OMNamespace omNs =
> > > > >
> fac.createOMNamespace("http://service.poc.com/xsd","example1");
> > > > > OMElement method = fac.createOMElement("getValue", omNs);
> > > > > OMElement value = fac.createOMElement("Text", omNs);
> > > > > value.addChild(fac.createOMText(value,"38"));
> > > > > method.addChild(value);
> > > > > return method;
> > > > > }
> > > > >
> > > > > Thanks and regards,
> > > > > Vimal.
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > > __________________________________________________
> > > > Do You Yahoo!?
> > > > Tired of spam? Yahoo! Mail has the best spam protection around
>
> > > > http://mail.yahoo.com
> > > >
> > > >
> > >
> >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > > __________________________________________________
> > > Do You Yahoo!?
> > > Tired of spam? Yahoo! Mail has the best spam protection around
> > > http://mail.yahoo.com
> > >
> > >
> >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > >
> > >
> > >
> >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]