jt400 调用AS400的程序 异常响应信息
时间: 2024-02-18 10:05:48 浏览: 188
AS400异步接收程序
如果您使用 jt400 库调用 AS400 程序时出现异常,可以通过捕获异常并获取 AS400Message 对象来获取异常响应信息。以下是一个示例代码:
```java
import java.sql.*;
import com.ibm.as400.access.*;
public class AS400ProgramCaller {
public static void main(String[] args) {
try {
AS400 sys = new AS400("192.168.0.1", "user", "password");
ProgramCall pgm = new ProgramCall(sys);
// 设置程序名和参数
String programName = "/QSYS.LIB/MYLIB.LIB/MYPGM.PGM";
String[] programParameters = new String[] { "param1", "param2", "param3" };
ProgramParameter[] parameters = new ProgramParameter[programParameters.length];
// 将参数转换为 ProgramParameter 对象
for (int i = 0; i < programParameters.length; i++) {
parameters[i] = new ProgramParameter(programParameters[i].getBytes());
}
// 调用程序
pgm.setProgram(programName, parameters);
if (pgm.run() != true) {
// 获取异常信息
AS400Message[] messageList = pgm.getMessageList();
for (int i = 0; i < messageList.length; i++) {
System.out.println("Error message #" + (i+1) + ": " + messageList[i].getText());
}
} else {
// 获取程序输出
byte[] outputData = parameters[0].getOutputData();
String outputString = new String(outputData);
System.out.println("Program output: " + outputString);
}
// 断开连接
sys.disconnectAllServices();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用 getMessageList() 方法获取 AS400Message 对象的数组,遍历数组并获取每个 AS400Message 对象的文本信息。如果程序调用成功,则获取程序输出参数的值。
请注意,AS400Message 对象包含有关异常的详细信息,例如错误代码、错误消息和错误类型。您可以根据自己的需要获取和处理这些信息。
阅读全文