Hi people,

I'm writing a service (very simple service) in GT4 that does submission of
jobs (using java CoG kit abstractions). This servise print in container log
one message (the message is the parameters of the method). But when I run a
client to test the web service, I don't have sucess...

I saw following error message in globus container log:

------------------------------------8<--------------------------------------------
...
[16]: https://172.16.132.201:8443/wsrf/services/HelloworldService
...


Job failed:
AxisFault
 faultCode: 
{http://xml.apache.org/axis/}Server.NoService<http://xml.apache.org/axis/%7DServer.NoService>
 faultSubcode:
 faultString: The AXIS engine could not find a target service to invoke!
targetService is null
 faultActor:
 faultNode:
 faultDetail:
    
{http://xml.apache.org/axis/}stackTrace:The<http://xml.apache.org/axis/%7DstackTrace:The>AXIS
engine could not find a target service to invoke!  targetService is
null
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:269)
    at
org.globus.wsrf.container.ServiceThread.doPost(ServiceThread.java:664)
    at
org.globus.wsrf.container.ServiceThread.process(ServiceThread.java:382)
    at
org.globus.wsrf.container.GSIServiceThread.process(GSIServiceThread.java:147)
    at org.globus.wsrf.container.ServiceThread.run(ServiceThread.java:291)

    
{http://xml.apache.org/axis/}hostname:mainha<http://xml.apache.org/axis/%7Dhostname:mainha>

The AXIS engine could not find a target service to invoke!  targetService is
null
    at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
    at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
    at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
Source)
    at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
    at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
    at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)
    at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
    at
org.apache.axis.message.addressing.handler.AddressingHandler.processClientResponse(AddressingHandler.java:305)
    at
org.apache.axis.message.addressing.handler.AddressingHandler.invoke(AddressingHandler.java:110)
    at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2727)
    at org.apache.axis.client.Call.invoke(Call.java:2710)
    at org.apache.axis.client.Call.invoke(Call.java:2386)
    at org.apache.axis.client.Call.invoke(Call.java:2309)
    at org.apache.axis.client.Call.invoke(Call.java:1766)
    at
org.globus.exec.generated.bindings.ManagedJobFactoryPortTypeSOAPBindingStub.getMultipleResourceProperties(ManagedJobFactoryPortTypeSOAPBindingStub.java:1219)
    at
org.globus.exec.client.GramJob.fetchDelegationFactoryEndpoints(GramJob.java:651)
    at
org.globus.exec.client.GramJob.populateJobDescriptionEndpoints(GramJob.java:513)
    at org.globus.exec.client.GramJob.submit(GramJob.java:458)
    at
org.globus.cog.abstraction.impl.execution.gt4_0_0.JobSubmissionTaskHandler.submit(JobSubmissionTaskHandler.java:171)
    at
org.globus.cog.abstraction.impl.common.AbstractTaskHandler.submit(AbstractTaskHandler.java:69)
    at
org.globus.exemplos.helloworld.impl.JobSubmission.submitTask(JobSubmission.java:191)
    at
org.globus.exemplos.helloworld.impl.HelloworldService.writeMessage(HelloworldService.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
    at
org.globus.axis.providers.RPCProvider.invokeMethodSub(RPCProvider.java:107)
    at
org.globus.axis.providers.PrivilegedInvokeMethodAction.run(PrivilegedInvokeMethodAction.java:42)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.globus.gsi.jaas.GlobusSubject.runAs(GlobusSubject.java:55)
    at org.globus.gsi.jaas.JaasSubject.doAs(JaasSubject.java:90)
    at
org.globus.axis.providers.RPCProvider.invokeMethod(RPCProvider.java:97)
    at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
    at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
    at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
    at
org.globus.wsrf.container.ServiceThread.doPost(ServiceThread.java:664)
    at
org.globus.wsrf.container.ServiceThread.process(ServiceThread.java:382)
    at
org.globus.wsrf.container.GSIServiceThread.process(GSIServiceThread.java:147)
    at org.globus.wsrf.container.ServiceThread.run(ServiceThread.java:291)
2008-10-22 11:53:58,137 WARN  gt4_0_0.JobSubmissionTaskHandler
[ServiceThread-16,cleanup:352] Unable to destroy remote service for task
urn:cog-1224687237279
java.lang.NullPointerException
    at
org.globus.exec.generated.service.ManagedJobServiceAddressingLocator.getManagedJobPortTypePort(ManagedJobServiceAddressingLocator.java:12)
    at
org.globus.exec.utils.client.ManagedJobClientHelper.getPort(ManagedJobClientHelper.java:32)
    at org.globus.exec.client.GramJob.release(GramJob.java:1489)
    at
org.globus.cog.abstraction.impl.execution.gt4_0_0.JobSubmissionTaskHandler.cleanup(JobSubmissionTaskHandler.java:348)
    at
org.globus.cog.abstraction.impl.execution.gt4_0_0.JobSubmissionTaskHandler.submit(JobSubmissionTaskHandler.java:185)
    at
org.globus.cog.abstraction.impl.common.AbstractTaskHandler.submit(AbstractTaskHandler.java:69)
    at
org.globus.exemplos.helloworld.impl.JobSubmission.submitTask(JobSubmission.java:191)
    at
org.globus.exemplos.helloworld.impl.HelloworldService.writeMessage(HelloworldService.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:384)
    at
org.globus.axis.providers.RPCProvider.invokeMethodSub(RPCProvider.java:107)
    at
org.globus.axis.providers.PrivilegedInvokeMethodAction.run(PrivilegedInvokeMethodAction.java:42)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.globus.gsi.jaas.GlobusSubject.runAs(GlobusSubject.java:55)
    at org.globus.gsi.jaas.JaasSubject.doAs(JaasSubject.java:90)
    at
org.globus.axis.providers.RPCProvider.invokeMethod(RPCProvider.java:97)
    at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:281)
    at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
    at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at
org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
    at
org.globus.wsrf.container.ServiceThread.doPost(ServiceThread.java:664)
    at
org.globus.wsrf.container.ServiceThread.process(ServiceThread.java:382)
    at
org.globus.wsrf.container.GSIServiceThread.process(GSIServiceThread.java:147)
    at org.globus.wsrf.container.ServiceThread.run(ServiceThread.java:291)
Submission Exception: Cannot submit job: The AXIS engine could not find a
target service to invoke!  targetService is null

-------------------------------8<--------------------------------------------



My wsdl file:
-------------------------------8<--------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="HelloworldService"
    targetNamespace="
http://topgrid.dcc.ufba.br/namespaces/grid/apps/HelloworldService_instance";
    xmlns="http://schemas.xmlsoap.org/wsdl/";
    xmlns:tns="
http://topgrid.dcc.ufba.br/namespaces/grid/apps/HelloworldService_instance";
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
    xmlns:wsdlpp="http://www.globus.org/namespaces/2004/10/WSDLPreprocessor";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

<!-- Types -->

<types>
<xsd:schema targetNamespace="
http://topgrid.dcc.ufba.br/namespaces/grid/apps/HelloworldService_instance";
    xmlns:tns="
http://topgrid.dcc.ufba.br/namespaces/grid/apps/HelloworldService_instance";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

    <!-- REQUESTS AND RESPONSES -->

    <xsd:element name="message" type="xsd:string"/>
    <xsd:element name="messageResponse">
      <xsd:complexType/>
    </xsd:element>

</xsd:schema>
</types>


<!-- Messages -->

<message name="WriteMessageInputMessage">
  <part name="parameters" element="tns:message"/>
</message>
<message name="WriteMessageOutputMessage">
  <part name="parameters" element="tns:messageResponse"/>
</message>


<!-- PortType -->

<portType name="HelloWorldPortType">

  <operation name="writeMessage">
    <input message="tns:WriteMessageInputMessage"/>
    <output message="tns:WriteMessageOutputMessage"/>
  </operation>

</portType>


</definitions>

-------------------------------8<--------------------------------------------



My java class of the service:
-------------------------------8<--------------------------------------------
package org.globus.exemplos.helloworld.impl;

import java.rmi.RemoteException;

import org.globus.exemplos.stubs.HelloworldService_instance.MessageResponse;

public class HelloworldService {
  public MessageResponse writeMessage(String message) throws RemoteException
{

    try {
      // Output in the globus container log
      System.out.println("Submiting task");
      JobSubmission job = new JobSubmission();

      StringBuffer specification = new StringBuffer();
      specification.append("<job>");
      specification.append("  <executable>/bin/echo</executable>");
      specification.append("  <argument>" + message + "</argument>");
      specification.append("
<stdout>${GLOBUS_USER_HOME}/helloworld.stdout</stdout>");
      specification.append("
<stderr>${GLOBUS_USER_HOME}/helloworld.stderr</stderr>");
      specification.append("</job>");

      job.setJobmanager("FORK");
      job.setSpecification(specification.toString());

      job.prepareTask();
      job.submitTask();
      job.waitJob();

      System.out.println(job.getExitValue());
    } catch (Exception e) {
      //TODO
    }

    return new MessageResponse();
  }
}

-------------------------------8<--------------------------------------------



The java class of JobSubmission is very similar with the example in java cog
wiki:
http://www.cogkit.org/viewcvs/viewcvs.cgi/src/cog/modules/abstraction-examples/src/org/globus/cog/abstraction/examples/execution/

Finally, my client java class:
-------------------------------8<--------------------------------------------
package org.globus.clients.helloworld;

import javax.xml.rpc.Stub;
import org.globus.axis.util.Util;
import org.apache.axis.message.addressing.Address;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.globus.wsrf.impl.security.authorization.NoAuthorization;
import org.globus.wsrf.security.Constants;
import
org.globus.exemplos.stubs.HelloworldService_instance.HelloWorldPortType;
import
org.globus.exemplos.stubs.HelloworldService_instance.service.HelloworldServiceAddressingLocator;

public class HelloworldClient {
    static {
        Util.registerTransport();
    }

  public HelloWorldPortType getPortType(String URI, boolean security) throws
Exception
  {
    HelloworldServiceAddressingLocator locator = new
HelloworldServiceAddressingLocator();
    EndpointReferenceType endpoint = new EndpointReferenceType();
    HelloWorldPortType helloworld = null;

    endpoint.setAddress(new Address(URI));
    helloworld = locator.getHelloWorldPortTypePort(endpoint);

    if (security)
    {
          ((Stub) helloworld)._setProperty(Constants.GSI_TRANSPORT,
Constants.ENCRYPTION);
          ((Stub) helloworld)._setProperty(Constants.AUTHORIZATION,
NoAuthorization.getInstance());
    }

    return helloworld;
  }

  public static void main(String[] args) {

    try {
      String URI = "
https://172.16.132.201:8443/wsrf/services/HelloworldService";;
      HelloworldClient client = new HelloworldClient();
      HelloWorldPortType helloworld = client.getPortType(URI,true);

      helloworld.writeMessage("Hello World!");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

}

-------------------------------8<--------------------------------------------



Any suggestions to why it does not work ?


Thanks.

ps: sorry my english... :)


-- 
Saudações,

Italo Valcy :: 
http://twiki.dcc.ufba.br/~ItaloValcy<http://twiki.dcc.ufba.br/%7EItaloValcy>
Graduando em Ciência da Computação - DCC/UFBA :: http://www.dcc.ufba.br

Reply via email to