Hi all!

I'm currently developing a service (BenchmarkingFactoryService) that needs
to publish some resource properties on the Index Service.

I use the command line client mds-servicegroup-add to aggregate this service
to the ones that can publish info. And it seems to succeed:

*Processing configuration
file...

INFO: Processed 1 registration
entries

INFO: Successfully registered
http://10.0.104.15:8080/wsrf/services/examples/BenchmarkingFactoryService to
servicegroup at http://10.0.104.15:8080/wsrf/services/DefaultIndexService*

BUT...... at the server side, the following error is reported:
*
**2009-07-09T11:10:13.457+02:00 ERROR impl.QueryAggregatorSource
[org.globus.mds.aggregator.impl.PollingAggregatorSource$QueryTimerListener,pollGetMultiple:193]
Exception Getting Multiple Resource Properties from
local:/wsrf/services/examples/BenchmarkingFactoryService:
org.globus.wsrf.security.SecurityException: [JWSSEC-23] Operation name could
not be determined*

I've already found some forum-posts pointing out that the error could be
related to differences between the *wsdl* of the service and its
implementation. So, below are the wsdl and the corresponding part of the
java code. It would be great if you could give me some clue. Thanks a lot!

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="BenchmarkingFactoryService" targetNamespace="
http://gsic.tel.uva.es/namespaces/BenchmarkingFactoryService";
    xmlns="http://schemas.xmlsoap.org/wsdl/";
    xmlns:tns="http://gsic.tel.uva.es/namespaces/BenchmarkingFactoryService";
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
    xmlns:wsrp="http://docs.oasis-open.org/wsrf/rp-2.xsd";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

    <!--TYPES-->
    <wsdl:types>

        <!-- BASIC ELEMENTS -->
        <xsd:schema targetNamespace="
http://gsic.tel.uva.es/namespaces/BenchmarkingFactoryService";
                          xmlns:tns="
http://gsic.tel.uva.es/namespaces/BenchmarkingFactoryService";
                          xmlns:wsa="http://www.w3.org/2005/08/addressing";
                          xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
                          xmlns:xsd="http://www.w3.org/2001/XMLSchema";
                          xmlns:bmark="
http://es.uva.tel.gsic/schema/benchmarkingResource";>

            <xsd:import namespace="http://www.w3.org/2005/08/addressing";
schemaLocation="../../ws/addressing/ws-addr.xsd"/>
            <xsd:import namespace="
http://es.uva.tel.gsic/schema/benchmarkingResource";
schemaLocation="benchmarkingResource.xsd"/>

            <!-- REQUESTS AND RESPONSES PARAMETERS -->
            <xsd:element name="createInput"
type="bmark:BenchmarkingResourceDefinitionType"/>

            <xsd:element name="createOutput"
type="wsa:EndpointReferenceType"/>

            <!-- RESOURCE PROPERTIES -->

        </xsd:schema>
    </wsdl:types>

    <!-- MESSAGES -->
    <message name="createBenchmarkingRequest">
        <part name="parameters" element="tns:createInput"/>
    </message>
    <message name="createBenchmarkingResponse">
        <part name="parameters" element="tns:createOutput"/>
    </message>

    <!--PORTTYPE-->
    <portType name="BenchmarkingFactoryPortType">
       * <operation name="createBenchmarkingResource">*
            <input message="tns:createBenchmarkingRequest"/>
            <output message="tns:createBenchmarkingResponse"/>
        </operation>
    </portType>

</definitions>

================= JAVA CODE =================

    public EndpointReferenceType
*createBenchmarkingResource*(BenchmarkingResourceDefinitionType

benchmarkingResourceDefinition) throws RemoteException
    {
        try
        {
            resourceHome = (BenchmarkingResourceHome)
BenchmarkingFactoryService.getInstanceResourceHome ();
        }
        catch (NoResourceHomeException rhe)
        {
            rhe.printStackTrace ();
            System.exit (1);
        }
        catch (ResourceContextException rce)
        {
            rce.printStackTrace ();
            System.exit (1);
        }

        ResourceKey key = null;

        try
        {
            key = resourceHome.create (benchmarkingResourceDefinition);
        }
        catch (Exception e)
        {
            throw new RemoteException (e.getMessage (), e);
        }

        /*
         * We create the instance's endpoint reference. The instance's
         * service path can be found in the JNDI deploy file (as a parameter
to
         * the resource home). This means that we can retrieve it from the
         * BenchmarkingResourceHome object.
         */
        EndpointReferenceType epr = null;
        try
        {
            URL baseURL = ServiceHost.getBaseURL ();
            String instanceService = resourceHome.getInstanceServicePath ();
            String instanceURI = baseURL.toString () + instanceService;

            // The endpoint reference includes the instance's URI and the
resource key
            epr = AddressingUtils.createEndpointReference (instanceURI,
key);
        }
        catch (Exception e)
        {
            throw new RemoteException (e.getMessage (), e);
        }

        return epr;
    }




_________________________

Francisco José Pérez
ETSI Telecommunications
University of Valladolid - Spain

Reply via email to