Perhaps your client still needs to include the ResourceIdentifier SOAP
header, even if it's an empty element? Even if a resource type is a
singleton, it may still have a resource identifier, no?
Dan
"José Antonio Sánchez" <[EMAIL PROTECTED]> wrote on 07/18/2006 05:18:49
AM:
> Hello, I'm trying to implement a factory service in Muse 1.0, so I've
> made it a singleton service. To do so I copied the code of the Home in
> the enterprise example as follows:
>
> private ServiceManagementPortResource m_resource = null;
> /**
> * Create and add any resource instances.
> *
> * @throws Exception on error
> */
> public void init() throws Exception
> {
> super.init();
> // TODO: Create and add any known resource instances here.
> // If this is home for a singleton service (i.e. a service
> that exposes exactly one resource),
> // use null as the resource identifier when creating the
instance.
> //String instance1Id = "00000001";
>
> try
> {
>
> if ( m_resource == null )
> {
> m_resource = (ServiceManagementPortResource)
> createInstance( null );
> EndpointReference epr =
> getEndpointReference( null );
> m_resource.setEndpointReference( epr );
> add( m_resource );
> System.out.println("epr is " + epr.toString());
> }
> }
> catch ( ResourceException e )
> {
> throw new ResourceUnknownException(
> "ServiceManagementPortResource","ServiceManagementPortResource"
> );
> }
> }
>
>
> And in the Resource file I've initialized the resourceid following the
> Host example:
>
> public void init()
> {
> super.init();
>
> /**
> * The ResourcePropertySet which contains all the defined
ResourceProperties
> */
> org.apache.ws.resource.properties.ResourcePropertySet
> resourcePropertySet = getResourcePropertySet();
> org.apache.ws.resource.properties.ResourceProperty
resourceProperty = null;
>
>
> try{
> // init the
{http://docs.oasis-open.org/wsdm/2004/12/muws/wsdm-muws-
> part1.xsd}ResourceId
> Resource Property
> org.apache.ws.muws.MuwsUtils.initResourceIdProperty(this);
>
>
> }
> catch (Exception e)
> {
> throw new javax.xml.rpc.JAXRPCException("There was a problem in
> initializing your resource properties. Please check your init()
> method. Cause: " + e.getLocalizedMessage());
> }
>
> }
>
> The problem is that when I try to invoke it using the following message:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:fs="http://tomas.org/wsdm/ServiceManagement"
> xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-
> ResourceProperties-1.2-draft-01.xsd"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
> <soapenv:Header>
> <wsa:To
> soapenv:mustUnderstand="1">http://adapt20:
> 8081/muse/services/ServiceManagementPort</wsa:To>
> <wsa:Action
> soapenv:mustUnderstand="1">http://tomas.
>
org/wsdm/ServiceManagement/ServiceManagementPortType/GetServices</wsa:Action>
> </soapenv:Header>
> <soapenv:Body>
> <fs:GetServicesRequest/>
> </soapenv:Body>
> </soapenv:Envelope>
>
> I get the response:
>
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <soapenv:Fault>
> <faultcode>soapenv:Client</faultcode>
> <faultstring>The expected resource identifier reference
> parameter named
> {http://tomas.org/wsdm/ServiceManagement}ResourceIdentifier was not
> found in the SOAP header.</faultstring>
> <detail/>
> </soapenv:Fault>
> </soapenv:Body>
> </soapenv:Envelope>
>
> So I think that it does not recognize it as a singleton service. Is
> there something more to do to define a singleton service apart from
> initializing the resource id as null?
>
> --
> Saludos.
> José Antonio Sánchez
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]