|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.as400.access.JavaApplicationCall
public class JavaApplicationCall extends Object implements Serializable
The JavaApplicationCall class provides an easy way to run Java applications on the IBM i system's Java Virtual Machine from a client. The client Java program specifies the environment, program to run and program parameters. The program then runs on the IBM i system's Java Virtual Machine. Text based input/output is provided by JavaApplicationCall. Input can be sent to the Java program which will receive the input via standard input. Standard output and standard error text generated by the Java program are received by JavaApplicationCall and made available to the calling program. JavaApplicationCall does not support displaying the graphical user interface of the IBM i system's Java program on the client. Other Java facilities, such as remote AWT must be used to display graphical interfaces on the client.
Sockets are used to send Standard input, output and error between client and IBM i system. The port used can be set via setPort(). The default port sequence is 2850, 2851 and 2852. If the port is in use, this class searches for available ports if findPort is true. Standard input, output and error are not transported across a secure connection even when the rest of the Toolbox is using SSL.
The presence of a firewall may prevent JavaApplicationCall from opening the necessary additional ports (for stdin, stdout, and stderr). The administrator may need to authenticate the application through the firewall in both directions: From client to IBM i, and from IBM i system to client.
For example, supposed Java class HelloWorld resides in directory /javatest on the system. The following calls this program and receives program output written to standard out.
import com.ibm.as400.access.*; public class test implements Runnable { JavaApplicationCall jaCall; public static void main(String[] args) { test me = new test(); me.Main(args); } void Main(String[] args) { try { // Construct an object to represent the system where the Java program is located. AS400 as400 = new AS400(); // Construct a JavaApplicationCall object. jaCall = new JavaApplicationCall(as400); // Set the Java application to be run. jaCall.setJavaApplication("HelloAS400"); // Set the classpath environment variable used by the IBM i system's // JVM so it can find the class to run. jaCall.setClassPath("/javatest"); // Start the thread that will receive standard output Thread outputThread = new Thread(this); outputThread.start(); // Start the program. The call to run() will not return // until the IBM i system Java program completes. If the Toolbox // cannot start the Java program, false is returned with // a list of AS400Message objects indicating why the program // could not start. if (jaCall.run() != true) { AS400Message[] messageList = jaCall.getMessageList(); for (int msg = 0; msg < messageList.length; msg++) System.out.println(messageList[msg].toString()); } } catch (Exception e) { e.printStackTrace(); } System.exit(0); } // This thread will get standard out from the IBM i system Java // program and print it. Note the call to sleep. JavaApplication // call returns immediately even if there is no data. public void run() { while (true) { String s = jaCall.getStandardOutString(); if (s != null) System.out.println(s); try { Thread.sleep(100); } catch (Exception e) {} } } }
Constructor and Description |
---|
JavaApplicationCall()
Constructs a JavaApplicationCall object. |
JavaApplicationCall(AS400 system)
Constructs a JavaApplicationCall object. |
JavaApplicationCall(AS400 system,
String application)
Constructs a JavaApplicationCall object. |
JavaApplicationCall(AS400 system,
String application,
String classPath)
Constructs a JavaApplicationCall object. |
Modifier and Type | Method and Description |
---|---|
void |
addActionCompletedListener(ActionCompletedListener listener)
Adds an ActionCompletedListener to be notified when the Java application ends. |
void |
addPropertyChangeListener(PropertyChangeListener listener)
Adds a listener to be notified when the value of any bound property changes. |
void |
addVetoableChangeListener(VetoableChangeListener listener)
Adds a listener to be notified when the value of any constrained property changes. |
String |
getClassPath()
Returns the value of the CLASSPATH environment variable when running the Java program. |
CommandCall |
getCommandCall()
Returns the CommandCall object that was used in the most recent invocation of run() . |
int |
getDefaultPort()
Returns the default port used to transfer standard in, standard out and standard error between the client and the IBM i system. |
int |
getGarbageCollectionFrequency()
Returns the relative frequency that garbage collection runs. |
int |
getGarbageCollectionInitialSize()
Returns the initial size, in kilobytes, of the garbage collection heap. |
String |
getGarbageCollectionMaximumSize()
Returns the maximum size, in kilobytes, that the garbage collection heap can grow to. |
int |
getGarbageCollectionPriority()
Returns the priority of the tasks running garbage collection. |
String |
getInterpret()
Returns whether all Java class files should be run interpretively. |
String |
getJavaApplication()
Returns the name of Java application to be run. |
String |
getJobName()
Returns the name that this job will run under. |
AS400Message[] |
getMessageList()
Returns the list of IBM i system messages generated if the Java program cannot be started. |
String |
getOptimization()
Returns the optimization level of IBM i system Java programs that will be created if no Java program is associated with the Java class. |
String[] |
getOptions()
Returns a list of special options used when running the Java class. |
String[] |
getParameters()
Returns parameter values that are passed to the Java application. |
Properties |
getProperties()
Returns the properties set on the IBM i system's JVM before running the Java program. |
String |
getSecurityCheckLevel()
Returns the level of warnings given for directories in the CLASSPATH that have public write authority. |
String |
getStandardErrorString()
Returns the next string written to standard error by the program running on the system. |
String |
getStandardOutString()
Returns the next string written to standard output by the application. |
AS400 |
getSystem()
Returns the system which contains the Java program. |
boolean |
isFindPort()
Indicates if this class should search for a free port. |
void |
removeActionCompletedListener(ActionCompletedListener listener)
Removes this ActionCompletedListener from the list of listeners. |
void |
removePropertyChangeListener(PropertyChangeListener listener)
Removes a property change listener from the list of listeners. |
void |
removeVetoableChangeListener(VetoableChangeListener listener)
Removes a vetoable change listener from the list of listeners. |
boolean |
run()
Run the Java application. |
void |
sendStandardInString(String data)
Sends the standard input to the application running on the system. |
void |
setClassPath(String classPath)
Sets the value of the CLASSPATH environment variable when running the Java program. |
void |
setDefaultPort(int port)
Sets the default port. |
void |
setFindPort(boolean search)
Sets searching for a free port. |
void |
setGarbageCollectionFrequency(int frequency)
Sets the relative frequency that garbage collection runs. |
void |
setGarbageCollectionInitialSize(int size)
Sets the initial size, in kilobytes, of the garbage collection heap. |
void |
setGarbageCollectionMaximumSize(String size)
Sets the maximum size, in kilobytes, that the garbage collection heap can grow to. |
void |
setGarbageCollectionPriority(int priority)
Sets the priority of the tasks running garbage collection. |
void |
setInterpret(String interpret)
Sets whether all Java class files should be run interpretively. |
void |
setJavaApplication(String application)
Sets the Java application to be run. |
void |
setJobName(String jobname)
Sets the name that this job will run under. |
void |
setOptimization(String opt)
Sets the optimization level of the IBM i system Java program that will be created if no Java program is associated with the Java class. |
void |
setOptions(String[] option)
Sets special options used when running the Java class. |
void |
setParameters(String[] parameters)
Sets one or more parameter values that are passed to the Java application. |
void |
setProperties(Properties property)
Sets the Java Virtual Machine properties when running the Java Application. |
void |
setSecurityCheckLevel(String chklvl)
Sets the level of warnings given for directories in CLASSPATH that have public write authority. |
void |
setSystem(AS400 system)
Sets the system. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public JavaApplicationCall()
public JavaApplicationCall(AS400 system)
system
- The system on which contains the Java program.public JavaApplicationCall(AS400 system, String application)
system
- The system on which contains the Java program.application
- The name of Java program.public JavaApplicationCall(AS400 system, String application, String classPath)
system
- The system on which contains the Java program.application
- The name of Java program.classPath
- The value of the environment variable CLASSPATH.Method Detail |
---|
public void addActionCompletedListener(ActionCompletedListener listener)
listener
- The ActionCompletedListener.removeActionCompletedListener(com.ibm.as400.access.ActionCompletedListener)
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
- The listener.removePropertyChangeListener(java.beans.PropertyChangeListener)
public void addVetoableChangeListener(VetoableChangeListener listener)
listener
- The listener.removeVetoableChangeListener(java.beans.VetoableChangeListener)
public String getClassPath()
Valid values are:
public CommandCall getCommandCall()
run()
.
public int getDefaultPort()
public int getGarbageCollectionFrequency()
public int getGarbageCollectionInitialSize()
Possible values are:
public String getGarbageCollectionMaximumSize()
Possible values are:
public int getGarbageCollectionPriority()
public String getInterpret()
Possible values are:
public String getJavaApplication()
public String getJobName()
Possible values are:
public AS400Message[] getMessageList()
public String getOptimization()
Possible values are:
public String[] getOptions()
The possible values are:
public String[] getParameters()
public Properties getProperties()
public String getSecurityCheckLevel()
The possible values are:
public String getStandardErrorString()
public String getStandardOutString()
public AS400 getSystem()
public boolean isFindPort()
public void removeActionCompletedListener(ActionCompletedListener listener)
listener
- The ActionCompletedListener.addActionCompletedListener(com.ibm.as400.access.ActionCompletedListener)
public void removePropertyChangeListener(PropertyChangeListener listener)
listener
- The listener.addPropertyChangeListener(java.beans.PropertyChangeListener)
public void removeVetoableChangeListener(VetoableChangeListener listener)
listener
- The listener.addVetoableChangeListener(java.beans.VetoableChangeListener)
public boolean run() throws AS400SecurityException, ConnectionDroppedException, ErrorCompletingRequestException, InterruptedException, IOException, ServerStartupException, UnknownHostException
AS400SecurityException
- If a security or authority error occurs.ConnectionDroppedException
- If the connection is dropped unexpectedly.ErrorCompletingRequestException
- If an error occurs before the request is completed.InterruptedException
- If this thread is interrupted.IOException
- If an error occurs while communicating with the system.ServerStartupException
- If the host server cannot be started.UnknownHostException
- If the system cannot be located.public void sendStandardInString(String data)
data
- The standard input to the system.public void setClassPath(String classPath) throws PropertyVetoException
Valid values are:
classPath
- The value of the classpath.PropertyVetoException
- If the change is vetoed.public void setDefaultPort(int port) throws PropertyVetoException
port
- The default port.PropertyVetoException
- If the change is vetoed.public void setFindPort(boolean search) throws PropertyVetoException
search
- true to search for a port that is not in use; false to not search.PropertyVetoException
- If the change is vetoed.public void setGarbageCollectionFrequency(int frequency) throws PropertyVetoException
frequency
- The relative frequency that garbage collection runs.PropertyVetoException
- If the change is vetoed.public void setGarbageCollectionInitialSize(int size) throws PropertyVetoException
The possible values are:
size
- The initial size of the garbage collection heap.PropertyVetoException
- If the change is vetoed.public void setGarbageCollectionMaximumSize(String size) throws PropertyVetoException
The possible values are:
size
- The maximum size that the garbage collection heap can grow to.PropertyVetoException
- If the change is vetoed.public void setGarbageCollectionPriority(int priority) throws PropertyVetoException
priority
- The priority of the tasks running garbage collection.PropertyVetoException
- If the change is vetoed.public void setInterpret(String interpret) throws PropertyVetoException
The possible values are:
interpret
- How all Java class files should be run interpretively.PropertyVetoException
- If the change is vetoed.public void setJavaApplication(String application) throws PropertyVetoException
application
- The Java application to be run.PropertyVetoException
- If the change is vetoed.public void setJobName(String jobname)
The possible values are:
jobname
- The value of the job name.public void setOptimization(String opt) throws PropertyVetoException
The possible values are:
opt
- The optimization level of the IBM i system Java program that
will be created if no Java program is associated with
the Java class.PropertyVetoException
- If the change is vetoed.public void setOptions(String[] option) throws PropertyVetoException
The possible values are:
option
- The special options used when running the Java class.PropertyVetoException
- If the change is vetoed.public void setParameters(String[] parameters) throws PropertyVetoException
parameters
- The parameters for the Java application.PropertyVetoException
- If the change is vetoed.public void setProperties(Properties property) throws PropertyVetoException
property
- The JVM properties.PropertyVetoException
- If the change is vetoed.public void setSecurityCheckLevel(String chklvl) throws PropertyVetoException
The possible values are:
chklvl
- The level of warnings given for directories in the
CLASSPATH that have public write authority.PropertyVetoException
- If the change is vetoed.public void setSystem(AS400 system) throws PropertyVetoException
system
- The system.PropertyVetoException
- If the change is vetoed.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |