axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shantanu Sen <s...@pacbell.net>
Subject question on wrapped mode
Date Wed, 16 Jun 2004 07:23:59 GMT

I am enclosing a WSDL at the end of the mail. This is
a typical doc-lit wrapped WSDL. 

Basically, the issue is with the following section of
the WSDL

<s:element name="createToken">
   <s:complexType>
     <s:sequence>
       <s:element name="hdr" type="tok:Header"
                             minOccurs="0"/>
        <s:element name="tokenInput" 
                   type="tok:CreateTokenInput" 
                   minOccurs="0"/>
     </s:sequence>
  </s:complexType>
</s:element>

When the WSDL with the above section is used with
WSDL2Java (both in Axis 1.1 and 1.2beta), the
generated interface is as follows:

public interface TokReqRespSoap extends 
                                    java.rmi.Remote {
  public java.lang.String createToken(
          Header  createTokenHdr,  
          CreateTokenInput createTokenInput)
            throws java.rmi.RemoteException;
}

This is incorrect - it should have generated one
parameter for the method createToken.

Now, when I change that specific section of the WSDL 
as follows:

<!--s:element name="createToken"-->
<s:complexType name="createToken">
  <s:sequence>
    <s:element name="hdr" type="tok:Header" 
                          minOccurs="0"/>
   <s:element name="tokenInput" 
                    type="tok:CreateTokenInput" 
                    minOccurs="0"/>
 </s:sequence>
</s:complexType>
<!--/s:element-->

Then, the generated interface is as follows:

public interface TokReqRespSoap 
              extends java.rmi.Remote {
    public java.lang.String createToken(
          CreateToken parameters) 
       throws java.rmi.RemoteException;
}

This seems to be the correct interface based on the
WSDL - a wrapped interface. 

Before I dig into the code to figure out why, I was
wondering if anyone has any insight as to why the
change in the schema produces this output. Is the
section of the schema as shown in the first instance
incorrect? If so why?

Thanks,
Shantanu

PS. Here is the complete original WSDL

-----------
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" 
   xmlns:s="http://www.w3.org/2001/XMLSchema" 
   xmlns:s0="http://tokensvc.mycompany.com/token" 
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  
targetNamespace="http://tokensvc.mycompany.com/token">
 <types>
     <s:schema elementFormDefault="qualified"
       
targetNamespace="http://tokensvc.mycompany.com/token"
        xmlns:s="http://www.w3.org/2001/XMLSchema" 
       
xmlns:tok="http://tokensvc.mycompany.com/token">
     <s:element name="createToken">
         <s:complexType>
           <s:sequence>
             <s:element name="hdr" type="tok:Header"
minOccurs="0"/>
             <s:element name="tokenInput"
type="tok:CreateTokenInput" minOccurs="0"/>
           </s:sequence>
         </s:complexType>
     </s:element>
     <s:element name="createTokenResponse"
type="s:string"/>
     <s:complexType name="Header">
         <s:sequence>
           <s:element name="CallbackId"
type="s:string" minOccurs="0"/>
           <s:element name="ClientId" type="s:string"
minOccurs="0"/>
         </s:sequence>
     </s:complexType>
     <s:complexType name="CreateTokenInput">
          <s:sequence>
                <s:element name="ServiceID"
type="s:string" minOccurs="0"/>
      		<s:element name="AssignedPerson"
type="s:string" minOccurs="0"/>
      	   </s:sequence>
     </s:complexType>
   </s:schema>
  </types>

  <message name="createTokenSoapIn">
      <part name="parameters"
element="s0:createToken"/>
  </message>
  <message name="createTokenSoapOut">
      <part name="parameters"
element="s0:createTokenResponse"/>
  </message>
  <portType name="TokReqRespSoap">
      <operation name="createToken">
        <input message="s0:createTokenSoapIn"/>
        <output message="s0:createTokenSoapOut"/>
      </operation>
  </portType>
  <binding name="TokReqRespSoap"
type="s0:TokReqRespSoap">
      <soap:binding
transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
      <operation name="createToken">
        <soap:operation
soapAction="http://tokensvc.mycompany.com/token/createToken"
          style="document"/>
        <input>
          <soap:body use="literal"/>
        </input>
        <output>
          <soap:body use="literal"/>
        </output>
      </operation>
  </binding>
  <service name="TokReqResp">
      <port name="TokReqRespSoap"
binding="s0:TokReqRespSoap">
        <soap:address
location="http://localhost:8080/tokwebsvc/TokReqResp"/>
      </port>
  </service>
</definitions>
---------------



Mime
View raw message