That's not supposed to work that way, I think. Normally you create a
factory service because you don't know the ID of a resource so you ask
to a service without ID about the ID of the resource you want.
Also, in the Enterprise example, all the request to the singleton
service comes without ResourceIdentifier.

On 7/18/06, Daniel Jemiolo <[EMAIL PROTECTED]> wrote:
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]




--
Saludos.
José Antonio Sánchez

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to