Title: java:EJB provider and parameter names in WSDL

I'm having trouble getting Axis to generate WSDL with proper parameter names in rather than in0, in1, etc.

This was working fine with the java:RPC provider when I had a simple class with static methods as the service implementation and compiling with the debug flag to javac on, but I have now switched to using the java:EJB provider. My implementation is a stateless session bean (classes for which are still compiled with debug though).

My deployment descriptor is as follows:

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="Voordeel" provider="java:EJB">
    <namespace>http://edocs.com/com.edocs.ps.kpn.voordeel</namespace>
    <requestFlow>
        <handler type="soapmonitor"/>
    </requestFlow>
    <responseFlow>
        <handler type="soapmonitor"/>
    </responseFlow>
    <parameter name="beanJndiName" value="IVoordeelHome"/>
    <parameter name="homeInterfaceName" value="com.edocs.ps.kpn.voordeel.IVoordeelHome"/>
    <parameter name="remoteInterfaceName" value="com.edocs.ps.kpn.voordeel.IVoordeel"/>
    <parameter name="className" value="com.edocs.ps.kpn.voordeel.VoordeelBean"/>
    <parameter name="allowedMethods" value="*"/>
    <parameter name="jndiContextClass" value="weblogic.jndi.WLInitialContextFactory"/>
 </service>
</deployment>

and my generated WDSL (viewed by using the link in the axis service list, not by running java2wsdl) is:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://edocs.com/com.edocs.ps.kpn.voordeel" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://edocs.com/com.edocs.ps.kpn.voordeel" xmlns:intf="http://edocs.com/com.edocs.ps.kpn.voordeel" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><wsdl:types><schema targetNamespace="http://edocs.com/com.edocs.ps.kpn.voordeel" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOf_xsd_string"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/></restriction></complexContent></complexType></schema></wsdl:types>
  <wsdl:message name="getVoordeelNumbersResponse">
    <wsdl:part name="getVoordeelNumbersReturn" type="intf:ArrayOf_xsd_string"/>
  </wsdl:message>
  <wsdl:message name="getVoordeelNumbersRequest">
    <wsdl:part name="in0" type="xsd:string"/>
    <wsdl:part name="in1" type="xsd:string"/>
    <wsdl:part name="in2" type="xsd:dateTime"/>
  </wsdl:message>

  <wsdl:portType name="IVoordeel">
    <wsdl:operation name="getVoordeelNumbers" parameterOrder="in0 in1 in2">
      <wsdl:input message="intf:getVoordeelNumbersRequest" name="getVoordeelNumbersRequest"/>
      <wsdl:output message="intf:getVoordeelNumbersResponse" name="getVoordeelNumbersResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="VoordeelSoapBinding" type="intf:IVoordeel">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getVoordeelNumbers">

      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="getVoordeelNumbersRequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://edocs.com/com.edocs.ps.kpn.voordeel" use="encoded"/>
      </wsdl:input>
      <wsdl:output name="getVoordeelNumbersResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://edocs.com/com.edocs.ps.kpn.voordeel" use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="IVoordeelService">
    <wsdl:port binding="intf:VoordeelSoapBinding" name="Voordeel">
      <wsdlsoap:address location="https://psunix21:6443/axis/services/Voordeel"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

The remote interface of my bean looks like this:

public interface IVoordeel extends EJBObject {

    public String[] getVoordeelNumbers(String aNumberAreaCode,
                                       String aNumberTelephone,
                                       Date dateWithinInvoice)
            throws RemoteException;

}

How do I get parameter names like 'aNumberAreaCode' into the WSDL in place of 'in0'?

I've seen this same question asked on the list years ago with no response, so I hope this is possible somehow:

http://marc.theaimsgroup.com/?l=axis-user&m=103639142708155&w=2

Cheers,

Eliot Stock.

Reply via email to