Hi,

The last time I successfully ran Axis2 was 0.95.  Thus it has been several 
weeks since I have touched it.  I downloaded RC3 to try it out and I am seeing 
a lot of differences.  Let me enumerate what I have run into thus far so you 
can comment on:

1. The deployment of my web service was successful, but the generated wsdl that 
Axis2 returns (?wsdl) does not match the one that I include with my service.  
Here's the one that I include with my service in META-INF/.

<?xml version="1.0" encoding="utf-8"?>
<definitions name="WebServiceMaker"
             xmlns="http://schemas.xmlsoap.org/wsdl/";
             
targetNamespace="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2";
             
xmlns:tns="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2";
             
xmlns:typesns="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2";
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>

   <types>
      <schema xmlns="http://www.w3.org/2001/XMLSchema";
              
targetNamespace="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2";
              
xmlns:tns="http://support.sas.com/xml/namespace/biwebservices/webservicemaker-9.2";
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
              elementFormDefault="qualified">

         <complexType name="StringArrayType">
            <sequence>
               <element name="string" type="string" minOccurs="0" 
maxOccurs="unbounded"/>
            </sequence>
         </complexType>

         <element name="MakeWebService" type="tns:MakeWebServiceType"/>
         <complexType name="MakeWebServiceType">
            <sequence>
               <element name="omrURI" type="string"/>
               <element name="omrUserID" type="string"/>
               <element name="omrPassword" type="string"/>
               <element name="storedProcessPaths" type="tns:StringArrayType"/>
               <element name="serviceName" type="string"/>
            </sequence>
         </complexType>

         <element name="MakeWebServiceResponse" 
type="tns:MakeWebServiceResponseType"/>
         <complexType name="MakeWebServiceResponseType">
            <sequence>
               <element name="MakeWebServiceResult" type="string"/>
            </sequence>
         </complexType>

         <element name="ListWebServices" type="tns:ListWebServicesType"/>
         <complexType name="ListWebServicesType"/>

         <element name="ListWebServicesResponse" 
type="tns:ListWebServicesResponseType"/>
         <complexType name="ListWebServicesResponseType">
            <sequence>
               <element name="ListWebServicesResult" 
type="tns:StringArrayType"/>
            </sequence>
         </complexType>

         <element name="FaultException" type="tns:FaultException"/>
         <complexType name="FaultException">
            <sequence>
               <element name="ExceptionMessage" type="string" minOccurs="0" 
maxOccurs="unbounded"/>
            </sequence>
         </complexType>
     
      </schema>
   </types>

   <message name="MakeWebServiceRequest">
      <part name="parameters" element="typesns:MakeWebService"/>
   </message>
   <message name="MakeWebServiceResponse">
      <part name="parameters" element="typesns:MakeWebServiceResponse"/>
   </message>
   <message name="ListWebServicesRequest">
      <part name="parameters" element="typesns:ListWebServices"/>
   </message>
   <message name="ListWebServicesResponse">
      <part name="parameters" element="typesns:ListWebServicesResponse"/>
   </message>
   <message name="FaultException">
      <part name="fault" element="typesns:FaultException"/>
   </message>

   <portType name="WebServiceMakerPortType">
      <operation name="MakeWebService">
         <input message="tns:MakeWebServiceRequest"/>
         <output message="tns:MakeWebServiceResponse"/>
         <fault name="fault" message="tns:FaultException"/>
      </operation>
      <operation name="ListWebServices">
         <input message="tns:ListWebServicesRequest"/>
         <output message="tns:ListWebServicesResponse"/>
      </operation>
   </portType>

   <binding name="WebServiceMakerBinding" type="tns:WebServiceMakerPortType">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
      <operation name="MakeWebService">
         <soap:operation soapAction=""/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
         <fault name="fault">
            <soap:fault name="fault" use="literal"/>
         </fault>
      </operation>
      <operation name="ListWebServices">
         <soap:operation soapAction=""/>
         <input>
            <soap:body use="literal"/>
         </input>
         <output>
            <soap:body use="literal"/>
         </output>
      </operation>
   </binding>

   <service name="WebServiceMaker">
      <port name="WebServiceMakerPort" binding="tns:WebServiceMakerBinding">
         <soap:address location="$WEBSVC_URL$"/>
      </port>
   </service>
</definitions>


Here's the one that you generate:

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:axis2="http://ws.apache.org/axis2"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:ns1="http://org.apache.axis2/xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
targetNamespace="http://ws.apache.org/axis2";><wsdl:types><xs:schema 
xmlns:ns="http://org.apache.axis2/xsd"; 
targetNamespace="http://org.apache.axis2/xsd"; elementFormDefault="unqualified" 
attributeFormDefault="unqualified">
<xs:element name="destroy">
<xs:complexType />
</xs:element>
<xs:element name="MakeWebService">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:anyType" name="parameters" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MakeWebServiceResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:anyType" name="return" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ListWebServices">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:anyType" name="parameters" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ListWebServicesResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:anyType" name="return" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema></wsdl:types><wsdl:message name="MakeWebServiceMessage"><wsdl:part 
element="ns1:MakeWebService" name="part1" /></wsdl:message><wsdl:message 
name="MakeWebServiceResponseMessage"><wsdl:part 
element="ns1:MakeWebServiceResponse" name="part1" 
/></wsdl:message><wsdl:message name="destroyMessage"><wsdl:part 
element="ns1:destroy" name="part1" /></wsdl:message><wsdl:message 
name="ListWebServicesMessage"><wsdl:part element="ns1:ListWebServices" 
name="part1" /></wsdl:message><wsdl:message 
name="ListWebServicesResponseMessage"><wsdl:part 
element="ns1:ListWebServicesResponse" name="part1" 
/></wsdl:message><wsdl:portType 
name="SASWebServiceMakerPortType"><wsdl:operation 
name="MakeWebService"><wsdl:input message="axis2:MakeWebServiceMessage" 
/><wsdl:output message="axis2:MakeWebServiceResponseMessage" 
/></wsdl:operation><wsdl:operation name="destroy"><wsdl:input 
message="axis2:destroyMessage" /></wsdl:operation><wsdl:operation 
name="ListWebServices"><wsdl:input
message="axis2:ListWebServicesMessage" /><wsdl:output 
message="axis2:ListWebServicesResponseMessage" 
/></wsdl:operation></wsdl:portType><wsdl:binding 
type="axis2:SASWebServiceMakerPortType" 
name="SASWebServiceMakerSOAP11Binding"><soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"; /><wsdl:operation 
name="MakeWebService"><soap:operation style="document" 
soapAction="urn:MakeWebService" /><wsdl:input><soap:body 
namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:input><wsdl:output><soap:body namespace="http://ws.apache.org/axis2"; 
use="literal" /></wsdl:output></wsdl:operation><wsdl:operation 
name="destroy"><soap:operation style="document" soapAction="urn:destroy" 
/><wsdl:input><soap:body namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:input></wsdl:operation><wsdl:operation 
name="ListWebServices"><soap:operation style="document" 
soapAction="urn:ListWebServices" /><wsdl:input><soap:body 
namespace="http://ws.apache.org/axis2";
use="literal" /></wsdl:input><wsdl:output><soap:body 
namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding 
type="axis2:SASWebServiceMakerPortType" 
name="SASWebServiceMakerSOAP12Binding"><soap12:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"; /><wsdl:operation 
name="MakeWebService"><soap12:operation style="document" 
soapAction="urn:MakeWebService" /><wsdl:input><soap12:body 
namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:input><wsdl:output><soap12:body namespace="http://ws.apache.org/axis2"; 
use="literal" /></wsdl:output></wsdl:operation><wsdl:operation 
name="destroy"><soap12:operation style="document" soapAction="urn:destroy" 
/><wsdl:input><soap12:body namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:input></wsdl:operation><wsdl:operation 
name="ListWebServices"><soap12:operation style="document" 
soapAction="urn:ListWebServices" /><wsdl:input><soap12:body
namespace="http://ws.apache.org/axis2"; use="literal" 
/></wsdl:input><wsdl:output><soap12:body namespace="http://ws.apache.org/axis2"; 
use="literal" /></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding 
type="axis2:SASWebServiceMakerPortType" 
name="SASWebServiceMakerHttpBinding"><http:binding verb="POST" 
/><wsdl:operation name="MakeWebService"><http:operation 
location="MakeWebService" /><wsdl:input><mime:content type="text/xml" 
/></wsdl:input><wsdl:output><mime:content type="text/xml" 
/></wsdl:output></wsdl:operation><wsdl:operation name="destroy"><http:operation 
location="destroy" /><wsdl:input><mime:content type="text/xml" 
/></wsdl:input></wsdl:operation><wsdl:operation 
name="ListWebServices"><http:operation location="ListWebServices" 
/><wsdl:input><mime:content type="text/xml" 
/></wsdl:input><wsdl:output><mime:content type="text/xml" 
/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service 
name="SASWebServiceMaker"><wsdl:port
binding="axis2:SASWebServiceMakerSOAP11Binding" 
name="SASWebServiceMakerSOAP11port0"><soap:address 
location="http://localhost:8080/axis2/services/SASWebServiceMaker"; 
/></wsdl:port><wsdl:port binding="axis2:SASWebServiceMakerSOAP12Binding" 
name="SASWebServiceMakerSOAP12port0"><soap12:address 
location="http://localhost:8080/axis2/services/SASWebServiceMaker"; 
/></wsdl:port><wsdl:port binding="axis2:SASWebServiceMakerHttpBinding" 
name="SASWebServiceMakerHttpport0"><http:address 
location="http://localhost:8080/axis2/rest/SASWebServiceMaker"; 
/></wsdl:port></wsdl:service></wsdl:definitions>

Even my service name changed from WebServiceMaker to SASWebServiceMaker.  The 
name "SASWebServiceMaker" is know where in services.xml or wsdl, but it is the 
top-level directory name in my exploded service archive.

2. I'm not sure how lifecyle works now; but, I am not seeing my init() method 
being called any more.  Does your service have to implement a certain interface 
in order for init() and destroy() lifecycle semantics to take place?  I noticed 
that Axis2 thinks destroy() is an operation (this should not be surfaced to end 
users).

I'm probably missing some configuration details I hope so please fill me in or 
point me to some documentation.

Thanks.

Tony Dean
SAS Institute Inc.
919.531.6704
[EMAIL PROTECTED]

SAS... The Power to Know
http://www.sas.com

Reply via email to