Please try that.
On 5/16/06, Tony Dean <[EMAIL PROTECTED]> wrote:
No. It's listed in its entirety below in a previous email.
Should it be? It would be helpful to have a schema for services.xml.
Thanks.
-----Original Message-----
From: Davanum Srinivas [mailto:[EMAIL PROTECTED]
Sent: Tuesday, May 16, 2006 8:44 AM
To: [email protected]
Cc: Deepal Jayasinghe
Subject: Re: runtime lifecycle implementation semantics
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.WebServiceMakerP
> >or
> >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_N
> >>> AM
> >>> 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/
--
Davanum Srinivas : http://wso2.com/blogs/