is the <service> enclosed by a <services> tag?

On 5/16/06, Tony Dean <[EMAIL PROTECTED]> wrote:
Deepal,

My wsdl contains:

<service name="WebServiceMaker">
  ...
</service>

My services.xml contains:

<service name="WebServiceMaker" scope="application">
  ...
</service>

Hence you should be able to associate the service name with the wsdl service.  
That's what I thought you were doing in .9x.  It seems to have changed in 1.0.

Why are you dependent upon the name of the archive?  I changed the name of the 
archive (in my case the name of the exploded directory) to WebServiceMaker (it 
was SASWebServiceMaker) and it is working as I expect now.

Thanks.

-----Original Message-----
From: Deepal Jayasinghe [mailto:[EMAIL PROTECTED]
Sent: Monday, May 15, 2006 1:02 PM
To: Tony Dean
Cc: [email protected]
Subject: Re: runtime lifecycle implementation semantics

btw what is the name of service archive file , service name always be the name 
of the archive file if the services.xml has only one service.
So wsdl service name should be equal to the name of the service.
  - if the service name is foo.aar  (services.xml exactly look like yours)
  - then wsdl service element should look like



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



Tony Dean wrote:

>Also, do you know why
>http://localhost:8080/axis2/services/SASWebServiceMaker?wsdl is
>returning
>
>- <error>
>  <description>Unable to generate WSDL for this service</description>
>  <reason>Either user has not dropped the wsdl into META-INF or
>operations use message receivers other than RPC.</reason>
>  </error>
>
>I'm using RawXMLINOutMessageReceiver.
>
>meta-inf/services.xml
>
><service name="WebServiceMaker" scope="application">
>  <description>SAS BI Web Services (WebServiceMaker)</description>
>  <parameter locked="xsd:false"
>name="ServiceClass">com.sas.web.services.maker.axis2.WebServiceMakerPor
>tTypeSkeleton</parameter>
>  <operation name="MakeWebService">
>    <messageReceiver
>class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>  </operation>
>  <operation name="ListWebServices">
>    <messageReceiver
>class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
>  </operation>
></service>
>
>meta-inf/service.wsdl
>
><?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>
>
>
>
>-----Original Message-----
>From: Deepal Jayasinghe [mailto:[EMAIL PROTECTED]
>Sent: Thursday, May 11, 2006 12:07 AM
>To: Tony Dean
>Subject: Re: runtime lifecycle implementation semantics
>
>Service scope will be equal to the scope of the service. The life time of the 
service is the life time of the service context.
>
>Tony Dean wrote:
>
>
>
>>Deepal,
>>
>>I forgot to ask.  How do you configure the service context scope?  I assume 
in service.xml.  Thanks.
>>
>>-----Original Message-----
>>From: Deepal Jayasinghe [mailto:[EMAIL PROTECTED]
>>Sent: Tuesday, May 09, 2006 11:45 AM
>>To: [email protected]
>>Subject: Re: runtime lifecycle implementation semantics
>>
>>Hi Tony
>>pls see my in line comments
>>
>>Tony Dean wrote:
>>
>>
>>
>>
>>
>>>Hi ,
>>>
>>>Could you please answer a few questions about lifecycle and runtime contexts?
>>>
>>>
>>>
>>>
>>>
>>>
>>Life cycle of a service is determine by its scope , you can deploy a
>>service in one of the following scopes
>>  - request scope : life time of the service will be the life time of
>>request processing
>>  - transport scope : The life time of the service will be the life
>>time of the transport session and most of the time transport session
>>is manged by cookies
>>  - soap session scope : The scope maintained using service group id.
>> - application scope : The life time of the service will be the life
>>time of the system
>>
>>Here the service impl class will be stored in ServiceContext , so for each 
scope you will be having service context and its life time vary depending on the 
scope.
>>for example ,
>> - if the service is deployed in application scope , then there will be only 
one servicecontex for that service , o.w there can be multiple service context for a 
given service on a given time.
>>
>>
>>
>>
>>
>>>You have addressed the issue of service lifecycle by providing 
init(ServiceContext) and destroy(ServiceContext) callbacks that are called during 
service initialization and service destruction, respectively.  Now as I understand it 
you also have a setOperationContext(OperationContext) callback that is called on every 
service invocation to provide an operation context.
>>>
>>>>From the operation context, I can get the message context in one of two way 
it seems:
>>>
>>>Map map = operationContext.getMessageContexts();
>>>
>>>In this case, I'm not sure what to do with multiple message contexts.  Can 
you explain the need for a map?
>>>
>>>
>>>
>>>
>>>
>>>
>>Operation context is to represent a given MEP (Message Exchange
>>Patterns) , for a given MEP there can be multiple messages so there can be 
multiple message contexts as well. That is why you can see a Map in operation 
context. It should be note that each message in a given mep has a unique name.
>>
>>
>>
>>
>>
>>>MessageContext context = operationContext.getMessageContext(String);
>>>
>>>In this case, I'm not sure what input String is designating.  Can you 
explain?
>>>
>>>
>>>
>>>
>>>
>>>
>>The value of the string is the corresponding message label or the name in a given mep. For an 
example if the MEP is in-out , then the value could be "in"  or "out"
>>
>>
>>
>>
>>
>>>If there is documentation, please direct me to it.  I could not gather 
enough information from your javadoc.
>>>
>>>
>>>
>>>
>>>
>>>
>>I am very sorry for that :(
>>
>>
>>
>>
>>
>>>The reason that I need the message context in the first place is so that I 
can create a detailed SOAP fault if an exception occurs:
>>>
>>>
>>> messageContext.setProperty(SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAM
>>> E, soapFaultCode);
>>>
>>>messageContext.setProperty(SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NA
>>>ME, soapFaultReason);
>>>
>>>messageContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NA
>>>M
>>>E, soapFaultDetail);
>>>
>>>Maybe there is a better way to create custom, detailed faults now so that I 
do not need to set message context properties.  Please let me know that as well.
>>>
>>>
>>>
>>>
>>>
>>>
>>I think Chinthaka can answer this better than me :)
>>
>>
>>
>>
>>
>>>Thank you for your time!
>>>
>>>-Tony
>>>
>>>Tony Dean
>>>SAS Institute Inc.
>>>919.531.6704
>>>[EMAIL PROTECTED]
>>>
>>>SAS... The Power to Know
>>>http://www.sas.com
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>--
>>Thanks,
>>Deepal
>>................................................................
>>~Future is Open~
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>--
>Thanks,
>Deepal
>................................................................
>~Future is Open~
>
>
>
>
>
>

--
Thanks,
Deepal
................................................................
~Future is Open~






--
Davanum Srinivas : http://wso2.com/blogs/

Reply via email to