axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From paul nibin <nibin....@gmail.com>
Subject Re: Simple web service invocation failing
Date Tue, 12 Oct 2010 05:38:18 GMT
Hi,

               Thank you so much for the response.

I know that it will work if the "throws Exception" clause is removed.

But I need to support this feature. Is there any way to support invoking a
method which does not take any input arguments, returns void and throws an
exception?

Paul

On Tue, Oct 12, 2010 at 11:01 AM, Martin Makundi <
martin.makundi@koodaripalvelut.com> wrote:

> Hi!
>
> Try removing your unnecessary "throws Exception" clause.
>
> **
> Martin
>
> 2010/10/12 paul nibin <nibin.cse@gmail.com>:
> > Hi all,
> >
> >        I am trying to invoke a simple web service.
> >
> > public class SimpleTestVoid
> > {
> >     public void printMessage() throws Exception
> >     {
> >         System.out.println( "Hello world" );
> >     }
> > }
> >
> >
> > The WSDL is generated fine. Generated the client. But when invoking the
> > service, I am getting an exception.
> >
> > java.lang.UnsupportedOperationException: An access occurred that is not
> > valid.
> >         at
> >
> org.apache.axis2.description.InOnlyAxisOperation.getMessage(InOnlyAxisOperation.java:117)
> >         at
> >
> org.apache.axis2.util.MessageContextBuilder.createOutMessageContext(MessageContextBuilder.java:183)
> >         at
> >
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:37)
> >         at
> >
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
> >         at
> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
> >         at
> >
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
> >         at
> > org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
> >
> > I debugged some part of the code.
> >
> > When the service is deployed, according to the signature of the method,
> it
> > is creating a InOnlyAxisOperation with "robust-in-only" as the message
> > exchange pattern( it is not taking any input params and throwing an
> > exception).
> >
> >
> > org.apache.axis2.deployment.util.UtilsgetAxisOperationForJmethod()
> >
> >      if ("void".equals(method.getReturnType().getName())) {
> >             if (method.getExceptionTypes().length > 0) {
> >                 operation = AxisOperationFactory
> >
> > .getAxisOperation(WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY);
> >             } else {
> >                 operation = AxisOperationFactory
> >
> > .getAxisOperation(WSDLConstants.MEP_CONSTANT_IN_ONLY);
> >             }
> >
> > If MEP_CONSTANT_IN_ONLY message exchange pattern is used, then all works
> > fine. But if there a method which does not take any input parameters and
> > throws some exception, then this issue comes.
> >
> > org.apache.axis2.description.AxisOperationFactory.getAxisOperation(int
> > mepURI)
> >
> >             case WSDLConstants.MEP_CONSTANT_ROBUST_IN_ONLY : {
> >                 abOpdesc = new InOnlyAxisOperation();
> >
> >
> abOpdesc.setMessageExchangePattern(WSDL2Constants.MEP_URI_ROBUST_IN_ONLY);
> >                 break;
> >
> > So when the invoking the method using a client, in
> >
> org.apache.axis2.util.MessageContextBuilder.createOutMessageContext(MessageContext
> > inMessageContext)
> >
> > if (ao != null){
> >
> >
> newmsgCtx.setAxisMessage(ao.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE));
> >         }
> >
> > Since a0 is a org.apache.axis2.description.InOnlyAxisOperation, the
> > following getMessage is invoked, so it is throwing this
> > UnsupportedOperationException.
> >
> > public AxisMessage getMessage(String label) {
> >         if (WSDLConstants.MESSAGE_LABEL_IN_VALUE.equals(label)) {
> >             return (AxisMessage) getChild("inMessage");
> >         } else {
> >             throw new
> > UnsupportedOperationException(Messages.getMessage("invalidacess"));
> >         }
> >     }
> >
> > If any more info is required please let me know. Hoping for a response..
> >
> > Please.. I need help with this one...
> >
> > Thanks,
> > Paul
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@axis.apache.org
> For additional commands, e-mail: java-user-help@axis.apache.org
>
>

Mime
View raw message