I'd like to be able to deploy a web services that receives a 
javax.xml.soap.SOAPElement and returns the same type.  However, when I deploy the 
following, Axis is generating invalid WSDL.

The problem in the WSDL is that a undefined prefix "tns1" is being used to define the 
return type: "tns1:SOAPElement".

Details are below ...

Here is the service being deployed:
===================================

public class TestService { 

  public SOAPElement onRequest(SOAPElement msgElt) 
    throws RemoteException { return msgElt; }

}

Here is the WSDD:
=================

<deployment xmlns="http://xml.apache.org/axis/wsdd/";>
  <service name="TestService" style="document">
    <parameter name="className" 
      value="com.javector.chap5.junk.TestService"/>
    <parameter name="allowedMethods" value="onRequest" />
  </service>
</deployment>


Here is the WSLD that gets generated at the URL 
http://localhost:8080/axis/services/TestService?wsdl:
=====================================================

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://localhost:8080/axis/services/TestService"; 
xmlns="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:apachesoap="http://xml.apache.org/xml-soap"; 
xmlns:impl="http://localhost:8080/axis/services/TestService"; 
xmlns:intf="http://localhost:8080/axis/services/TestService"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:tns2="http://junk.chap5.javector.com"; 
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://junk.chap5.javector.com"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
  <element name="msgElt" /> 
  </schema>
- <schema targetNamespace="http://localhost:8080/axis/services/TestService"; 
xmlns="http://www.w3.org/2001/XMLSchema";>
  <element name="onRequestReturn" type="tns1:SOAPElement" /> 
  </schema>
  </wsdl:types>
- <wsdl:message name="onRequestRequest">
  <wsdl:part element="tns2:msgElt" name="msgElt" /> 
  </wsdl:message>
- <wsdl:message name="onRequestResponse">
  <wsdl:part element="impl:onRequestReturn" name="onRequestReturn" /> 
  </wsdl:message>
- <wsdl:portType name="TestService">
- <wsdl:operation name="onRequest" parameterOrder="msgElt">
  <wsdl:input message="impl:onRequestRequest" name="onRequestRequest" /> 
  <wsdl:output message="impl:onRequestResponse" name="onRequestResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="TestServiceSoapBinding" type="impl:TestService">
  <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"; 
/> 
- <wsdl:operation name="onRequest">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="onRequestRequest">
  <wsdlsoap:body namespace="http://junk.chap5.javector.com"; use="literal" /> 
  </wsdl:input>
- <wsdl:output name="onRequestResponse">
  <wsdlsoap:body namespace="http://localhost:8080/axis/services/TestService"; 
use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="TestServiceService">
- <wsdl:port binding="impl:TestServiceSoapBinding" name="TestService">
  <wsdlsoap:address location="http://eai-client2:8080/axis/services/TestService"; /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>


Thanks for your help ...

Mark Hansen
email: [EMAIL PROTECTED]

Reply via email to