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~ 



Reply via email to