Hi ,
I installed GT-4.0.3 and want submit a job whit GramJob class.
when i run job , see this error :
--------------------
[EMAIL PROTECTED]:/usr/local/GT4-examples/gt4book-examples> java
SubmitJob.class
submitting job ...
Waiting before create GramJob
Container failed to initialize. Caused by
org.apache.axis.ConfigurationException: Configuration file directory './etc'
does not exist or is not a directory or is not readable.
org.apache.axis.ConfigurationException: Configuration file directory './etc'
does not exist or is not a directory or is not readable.
at
org.apache.axis.configuration.DirProvider.<init>(DirProvider.java:73)
at
org.globus.wsrf.container.ServiceDispatcher.<init>(ServiceDispatcher.java:81)
at
org.globus.wsrf.container.GSIServiceDispatcher.<init>(GSIServiceContainer.java:63)
at
org.globus.wsrf.container.GSIServiceContainer.createServiceDispatcher(GSIServiceContainer.java:49)
at
org.globus.wsrf.container.ServiceContainer.start(ServiceContainer.java:225)
at
org.globus.wsrf.container.ServiceContainer.<init>(ServiceContainer.java:197)
at
org.globus.wsrf.container.GSIServiceContainer.<init>(GSIServiceContainer.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:80)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:44)
at java.lang.reflect.Constructor.newInstance(Constructor.java:315)
at
org.globus.wsrf.container.ServiceContainer.createContainer(ServiceContainer.java:138)
at
org.globus.wsrf.impl.notification.ClientNotificationConsumerManager.startListening(ClientNotificationConsumerManager.java:61)
at
org.globus.exec.client.GramJob.setupNotificationConsumerManager(GramJob.java:1000)
at
org.globus.exec.client.GramJob.createJobEndpoint(GramJob.java:899)
at org.globus.exec.client.GramJob.submit(GramJob.java:460)
at SubmitJob.submitJob(SubmitJob.java:99)
at SubmitJob.main(SubmitJob.java:50)
at
org.apache.axis.configuration.DirProvider.<init>(DirProvider.java:73)
at
org.globus.wsrf.container.ServiceDispatcher.<init>(ServiceDispatcher.java:81)
at
org.globus.wsrf.container.GSIServiceDispatcher.<init>(GSIServiceContainer.java:63)
at
org.globus.wsrf.container.GSIServiceContainer.createServiceDispatcher(GSIServiceContainer.java:49)
at
org.globus.wsrf.container.ServiceContainer.start(ServiceContainer.java:225)
at
org.globus.wsrf.container.ServiceContainer.<init>(ServiceContainer.java:197)
at
org.globus.wsrf.container.GSIServiceContainer.<init>(GSIServiceContainer.java:45)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:80)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:44)
at java.lang.reflect.Constructor.newInstance(Constructor.java:315)
at
org.globus.wsrf.container.ServiceContainer.createContainer(ServiceContainer.java:138)
at
org.globus.wsrf.impl.notification.ClientNotificationConsumerManager.startListening(ClientNotificationConsumerManager.java:61)
at
org.globus.exec.client.GramJob.setupNotificationConsumerManager(GramJob.java:1000)
at
org.globus.exec.client.GramJob.createJobEndpoint(GramJob.java:899)
at org.globus.exec.client.GramJob.submit(GramJob.java:460)
at SubmitJob.submitJob(SubmitJob.java:99)
at SubmitJob.main(SubmitJob.java:50)
------------------------
my SubmitJob.java contain this :
import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.axis.components.uuid.UUIDGen;
import org.apache.axis.components.uuid.UUIDGenFactory;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.apache.axis.message.addressing.ReferencePropertiesType;
import org.apache.axis.message.addressing.Address;
import org.globus.exec.client.GramJob;
import org.globus.exec.client.GramJobListener;
import org.globus.exec.generated.StateEnumeration;
import org.globus.exec.generated.JobDescriptionType;
import org.globus.exec.generated.FilePairType;
import org.globus.exec.utils.ManagedJobConstants;
import org.globus.wsrf.impl.security.authentication.Constants;
import org.globus.wsrf.impl.security.authorization.Authorization;
import org.globus.wsrf.impl.security.authorization.HostAuthorization;
import org.globus.wsrf.impl.SimpleResourceKey;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
import org.globus.exec.generated.JobDescriptionType;
import org.globus.exec.utils.rsl.RSLHelper;
public class SubmitJob implements GramJobListener
{
private static Object waiter = new Object();
public static void main (String args[])
{
SubmitJob client = new SubmitJob();
System.out.print("submitting job ... ");
try {
client.submitJob();
System.out.println("done");
System.out.println("Waiting for notification messages ...");
synchronized (waiter) {
waiter.wait();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void submitJob() throws Exception
{
// create factory epr
EndpointReferenceType endpoint = new EndpointReferenceType();
endpoint.setAddress(new Address("
https://omid:8443/wsrf/services/ManagedJobFactoryService"));
ReferencePropertiesType props = new ReferencePropertiesType();
SimpleResourceKey key = new
SimpleResourceKey(ManagedJobConstants.RESOURCE_KEY_QNAME,"Fork");
props.add(key.toSOAPElement());
endpoint.setProperties(props);
// job rsl
//String rsl =
"<job><executable>/bin/sleep</executable><argument>1</argument></job>";
// setup security
Authorization authz = HostAuthorization.getInstance();
Integer xmlSecurity = Constants.ENCRYPTION;
boolean batchMode = false;
boolean limitedDelegation = true;
// generate job uuid
UUIDGen uuidgen = UUIDGenFactory.getUUIDGen();
String submissionID = "uuid:" + uuidgen.nextUUID();
File jobDescriptionFile = new File("echo_job.xml");
JobDescriptionType jobDescription =
RSLHelper.readRSL(jobDescriptionFile);
//________________________________________________
GramJob job = new GramJob(jobDescription);
job.setAuthorization(authz);
job.setMessageProtectionType(xmlSecurity);
job.setDelegationEnabled(true);
job.addListener(this);
System.out.println("Waiting before create GramJob ");
job.submit(endpoint,batchMode,limitedDelegation,submissionID);
System.out.println("Waiting for craete GramJob ");
}
// GramJob calls this method when a job changes its state
// It's part of GramJobListener Interface
public void stateChanged(GramJob job)
{
StateEnumeration jobState = job.getState();
System.out.println(" got state notifiation: job is in state " +
jobState);
try {
//System.out.println("refreshing status: ");
//job.refreshStatus();
// System.out.println("state is: " + job.getState());
} catch (Exception e) {
e.printStackTrace();
}
if (jobState.equals(StateEnumeration.Done)
|| jobState.equals(StateEnumeration.Failed)) {
System.out.print("job finished. destroying job resource ... ");
try {
job.removeListener(this);
job.destroy();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("done");
synchronized (waiter) {
waiter.notify();
}
}
}
}
}
-----------------------------------
there was an error when i call " job.submit(...) " .
do some one can help me fo solve this problem ?
Thanks .
Omid.