axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rubén Naranjo Izquierdo (JIRA) <>
Subject [jira] Created: (AXIS2-416) WSDL2Java generates bad code for oneway operations
Date Thu, 26 Jan 2006 08:41:09 GMT
WSDL2Java generates bad code for oneway operations

         Key: AXIS2-416
     Project: Apache Axis 2.0 (Axis2)
        Type: Bug
  Components: Tools  
    Versions: 0.94    
 Environment: Any
    Reporter: Rubén Naranjo Izquierdo

   If we have a wsdl with an operation like this (Where "tns:SimpleMessage" may be just a

    <wsdl:portType name="SimplePortType">
        <wsdl:operation name="SimpleOperation">
            <wsdl:input message="tns:SimpleMessage"/>

   WSDL2Java generates a Message Receiver that extends "AbstractInOutSyncMessageReceiver"
instead of "AbstractInMessageReceiver":

public class SimplePortTypeMessageReceiver extends org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver
{ ... }

   Also, in the Stub, operations are registered as "OutInAxisOperation", instead of "InOnlyAxisOperation":

_operations = new org.apache.axis2.description.OutInAxisOperation[1];

   Any attept to use the stub to comunicate with the service will result in the following

org.apache.axis2.AxisFault: org.apache.axis2.AxisFault: Raw Xml provider supports only the
methods bearing the signature public OMElement &lt;method-name&gt;(OMElement) where
the method name can be anything
        at org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver.invokeBusinessLogic(
        at org.apache.axis2.receivers.AbstractInMessageReceiver.receive(
        at org.apache.axis2.engine.AxisEngine.receive(
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(
        at org.apache.axis2.transport.http.AxisServlet.doPost(
        at javax.servlet.http.HttpServlet.service(
        at javax.servlet.http.HttpServlet.service(
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(
        at org.apache.catalina.core.StandardWrapperValve.invoke(
        at org.apache.catalina.core.StandardContextValve.invoke(
        at org.apache.catalina.core.StandardHostValve.invoke(
        at org.apache.catalina.valves.ErrorReportValve.invoke(
        at org.apache.catalina.core.StandardEngineValve.invoke(
        at org.apache.catalina.connector.CoyoteAdapter.service(
        at org.apache.coyote.http11.Http11Processor.process(
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(
        at org.apache.tomcat.util.threads.ThreadPool$

   If we add an output message to the operation, then everything works perfectly (but the
operation isn't oneway any more):

    <wsdl:portType name="SimplePortType">
        <wsdl:operation name="SimpleOperation">
            <wsdl:input message="tns:SimpleMessage"/>
            <wsdl:output message="tns:SimpleMessage"/>

   Trying to manually change Message Receiver generated, so it extends "AbstractInMessageReceiver"
results in more exceptions difficult to solve.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message