Hi! Try removing your unnecessary "throws Exception" clause.
** Martin 2010/10/12 paul nibin <nibin....@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-unsubscr...@axis.apache.org For additional commands, e-mail: java-user-h...@axis.apache.org