You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Tony Dean <To...@sas.com> on 2006/04/28 16:49:32 UTC

[AXIS2 ] - RC3 codebase

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
tony.dean@sas.com

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