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/
