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
