消息类
IBM® Toolbox for Java™ AS400Message 类及其关联类表示从服务器返回的消息。
AS400Message
AS400Message 对象允许 Java 程序检索从先前操作 (例如,从命令调用) 生成的 IBM i 消息。 从消息对象中, Java 程序可以检索以下内容:
- 包含消息的 IBM i 库和消息文件
- 消息标识
- 消息类型
- 消息严重性
- 消息文本
- 消息帮助文本
以下示例显示如何使用 AS400Message 对象:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
// Create a command call object.
CommandCall cmd = new CommandCall(sys, "myCommand");
// Run the command
cmd.run();
// Get the list of messages that are
// the result of the command that I just ran
AS400Message[] messageList = cmd.getMessageList();
// Iterate through the list displaying the messages
for (int i = 0; i < messageList.length; i++)
{
System.out.println(messageList[i].getText());
}示例: 使用消息列表
以下示例显示如何将消息列表与 CommandCall 和 ProgramCall配合使用。
QueuedMessage
QueuedMessage 类扩展了 AS400Message 类。
QueuedMessage 类访问有关 IBM i 消息队列上消息的信息。 通过此类, Java 程序可以检索:
- 有关消息来源的信息,例如程序,作业号和用户。
- 消息队列
- 消息密钥
- 消息应答状态
以下示例打印当前 (signed-on) 用户的消息队列中的所有消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
// The message queue is on this system.
AS400 sys = new AS400(mySystem.myCompany.com);
// Create the message queue object.
// This object will represent the
// queue for the current user.
MessageQueue queue = new MessageQueue(sys, MessageQueue.CURRENT);
// Get the list of messages currently in this user's queue.
Enumeration e = queue.getMessages();
// Print each message in the queue.
while (e.hasMoreElements())
{
QueuedMessage msg = e.getNextElement();
System.out.println(msg.getText());
}MessageFile
MessageFile 类允许您从 IBM i 消息文件接收消息。 MessageFile 类返回包含消息的 AS400Message 对象。 通过使用 MessageFile 类,您可以执行以下操作:
- 返回包含消息的消息对象
- 返回在消息中包含替换文本的消息对象
以下示例显示如何检索和打印消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
AS400 system = new AS400("mysystem.mycompany.com");
MessageFile messageFile = new MessageFile(system);
messageFile.setPath("/QSYS.LIB/QCPFMSG.MSGF");
AS400Message message = messageFile.getMessage("CPD0170");
System.out.println(message.getText());MessageQueue
MessageQueue 类允许 Java 程序与 IBM i 消息队列进行交互。
MessageQueue 类充当 QueuedMessage 类的容器。 getMessages() 方法尤其会返回 QueuedMessage 对象的列表。 MessageQueue 类可以执行以下操作:
- 设置消息队列属性
- 获取有关消息队列的信息
- 从消息队列接收消息
- 将消息发送到消息队列
- 应答消息
以下示例列出了当前用户的消息队列中的消息:
注: 请阅读 代码示例免责声明 以获取重要的法律信息。
// The message queue is on this system.
AS400 sys = new AS400(mySystem.myCompany.com);
// Create the message queue object.
// This object will represent the
// queue for the current user.
MessageQueue queue = new MessageQueue(sys, MessageQueue.CURRENT);
// Get the list of messages currently in this user's queue.
Enumeration e = queue.getMessages();
// Print each message in the queue.
while (e.hasMoreElements())
{
QueuedMessage msg = e.getNextElement();
System.out.println(msg.getText());
}