If I enclose <service> with <services>, I get an axis exception upon deployment:
Invalid service WebServiceMaker due to In valid services.xml found Obviously, that is not the correct syntax. -----Original Message----- From: Davanum Srinivas [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 16, 2006 8:52 AM To: Tony Dean Cc: [email protected]; Deepal Jayasinghe Subject: Re: runtime lifecycle implementation semantics 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.WebServiceMake > > >rP > > >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_LOCA > > >>>L_ > > >>>NA > > >>>ME, soapFaultReason); > > >>> > > >>>messageContext.setProperty(SOAP12Constants.SOAP_FAULT_DETAIL_LOCA > > >>>L_ > > >>>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/
