WSDL2Java - incorrect Java code when using SOAP headers
-------------------------------------------------------
Key: AXIS-2398
URL: http://issues.apache.org/jira/browse/AXIS-2398
Project: Apache Axis
Type: Bug
Components: WSDL processing
Versions: 1.3
Environment: Axis version is 1.3, Java version is 1.4, running on WinXP SP2
Reporter: David Easley
The attached WSDL and associated schema defines a single method that uses a
SOAP header in the request message. WSDL2Java generates the following method
signature in the ...PortType interface:
public com.northgateis.compass.ws.axis.dto.CreateRoleResponse
createRole(com.northgateis.compass.ws.axis.dto.CreateRole parameters,
com.northgateis.compass.ws.axis.dto.SecurityCredentialsHeader
securityheader)
throws java.rmi.RemoteException;
When we define a dummy method definition prior the wanted method the following
code is generated for the original method:
public int createRole(
com.northgateis.compass.ws.axis.dto.RoleDto roleDto,
com.northgateis.compass.ws.axis.dto.SecurityCredentialsDto
securityCredentials)
throws java.rmi.RemoteException;
We believe the second signature is correct (it's close to what we had
originally before we defined a SOAP header and therefore what we expected). It
seems as if specifying a dummy method (that doesn't use a SOAP header) prior to
the wanted methods kicks WSDL2Java into generating code correctly for the
methods that follow.
The provided WSDL has the dummy method commented out (in the messages,
portType, and binding sections). To reproduce the bug, just search for "dummy"
and uncomment the commented out elements.
As you can see, we're using a doc/literal(wrapped) style WSDL.
Command line:
java -cp
..\..\compass-lib\apache-axis\lib\axis.jar;..\..\compass-lib\jakarta-commons\lib\commons-logging-1.0.4.jar;..\..\compass-lib\jakarta-commons-web\lib\commons-discovery.jar;..\..\compass-lib\apache-axis\lib\jaxrpc.jar;..\..\compass-lib\apache-axis\lib\saaj.jar;..\..\compass-lib\apache-axis\lib\wsdl4j.jar
org.apache.axis.wsdl.WSDL2Java -s -o "srcgen"
--NStoPkg
http://www.northgate-is.com/compass=com.northgateis.compass.ws.axis.dto
--NStoPkg
http://www.govtalk.gov.uk/people/PersonDescriptives=com.northgateis.compass.ws.axis.dto
--NStoPkg http://www.govtalk.gov.uk/core=com.northgateis.compass.ws.axis.dto
"..\web-war\wsdls\compassSecurity.wsdl"
--NStoPkg
http://www.northgate-is.com/compass/security/wsdl=com.northgateis.compass.ws.security.services
Command output message:
01-Feb-2006 13:12:11 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and
javax.mail.internet.MimeMultipart). Attachment support is disabled.
[Note - we get this warning either way; it seems to be benign]
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira