精华内容
下载资源
问答
  • 使用WebSphere MQ版本6和Rational Application Developer版本6,第2部分编写Java Message Service程序 内容系列: 此内容是该系列#的一部分#: 使用WebSphere MQ版本6和Rational Application Developer第6版...

    在你开始前

    在以下部分中,了解如何从本教程中获得最大收益。

    关于本教程

    在本教程中,您将逐步了解如何配置WebSphere MQ和Rational Application Developer来进行客户机传输,远程排队和JMS发布/订阅编程。 提供了示例应用程序以及有关运行这些应用程序的说明,以演示和测试这些功能。

    目标

    在本教程中,您将学习如何:

    • 配置和测试WebSphere MQ客户端传输
    • 配置和测试WebSphere MQ远程排队
    • 配置和运行JMS发布/订阅应用程序

    先决条件

    如果您是Java程序员,并且需要了解如何使用WebSphere MQ和Rational Application Developer编写和测试JMS程序,那么本教程适合您。 假定您具有Java的中级知识和JMS的入门知识。 本教程中的说明还假定您已执行第1部分中的说明,因为它们是基于在该教程中创建和测试的配置和示例代码构建的。

    系统要求

    本教程中的说明适用于Windows®环境,尽管熟悉其他操作系统的用户可能可以将其改编为在其操作系统中使用。

    可通过以下链接找到本教程中使用的产品的系统要求:

    接续第1部分

    在本教程系列的第1部分中,您将简要概述企业消息传递系统和JMS。 然后,您将获得IBM用于JMS开发和测试的最新工具的描述,包括有关获取,安装和配置这些工具的详细说明。 为您提供了示例程序和说明,以帮助您使用这些工具并了解它们的工作方式。

    本教程从第1部分的结尾处开始,进一步探讨使用Rational Application Developer(Application Developer)进行WebSphere MQ和JMS编程。 本教程中的说明假定您已经执行了第一篇教程中的说明,因为它们是基于在该教程中创建和测试的配置和示例代码构建的。

    关于SupportPac ME01的说明

    自从发布第1部分以来,已经发布了新版本的WebSphere MQ SupportPac ME01-WebSphere MQ Initial Context Factory。 您需要下载并安装此最新版本,本教程中的示例代码才能正常工作。 转到相关信息的链接。

    致谢

    我要感谢并感谢此SupportPac的作者IBM Hursley Labs的Gareth Matthews先生及时为该教程提供了此新版本。

    WebSphere MQ配置

    增强示例代码的功能

    在接下来的两部分中,您将探索配置WebSphere MQ和JMS管理的对象的不同方法,以增强第一篇教程中提供的样本代码的功能。 您将要更改程序之间消息的流向,但是您将使用管理工具进行所有更改,而无需对程序进行任何更改。 这是JMS的关键优势,因为JMS将应用程序与底层消息传递实现分离开来,从而允许对消息传递系统配置进行重大更改,而无需更改应用程序。

    WebSphere MQ客户端传输

    WebSphere MQ提供了从Java程序到队列管理器的两种通信类型: bindings和client 。 这些通信类型在WebSphere MQ中称为传输类型。 绑定的传输类型要求Java程序与队列管理器在同一台计算机上执行,并使用从Java代码到队列管理器的本机接口。 在上一教程中执行的示例程序使用绑定传输。 客户端传输允许Java程序在运行队列管理器的计算机之外的工作站或其他计算机上单独运行。 队列管理器必须具有定义的服务器连接通道才能与Java客户端通信,并且专用网络路径必须可供Java客户端连接到队列管理器。

    创建服务器连接通道

    您使用WebSphere MQ资源管理器定义Java客户机所需的服务器连接通道。

    1. 从“ 开始”菜单启动WebSphere MQ Explorer。 (从这里开始,这些说明假定WebSphere MQ Explorer正在运行)。
    2. 单击Ender旁边的+号。
    3. 点击高级旁边的+号。
    4. 右键单击Channels,然后选择New> Server-connection Channel 。 (参见图1。
      图1.创建新的服务器连接通道
      创建新的服务器连接通道
    5. 名称:字段中输入java.channel ,然后单击完成

    创建JMS管理对象

    现在,您可以使用JMSAdminGUI创建一个QueueConnectionFactory ,该QueueConnectionFactory使用您刚刚定义的服务器连接通道上的客户端传输。

    1. 开始菜单启动Application Developer。 (从这里开始,这些说明假定Application Developer正在运行。)
    2. 使用C:\ workspace作为您的工作区目录。
    3. 使用右上角的视角切换按钮切换到Java视角。 (请参见图2。
      图2.透视开关按钮
      透视开关按钮
    4. 从主菜单中,选择“ 窗口”>“运行历史记录”>“ JMSAdminGUI”
    5. 选择“ 打开最近的配置文件:”按钮。 接下来,选择C:\ workspace / JMSAdminGUI / WMQ.config 。 (参见图3。
      图3.选择配置文件
      选择配置文件
    6. 单击确定
    7. 从主菜单中,选择“ 对象”>“新建”>“ MQQueueConnectionFactory”
    8. 在“ 对象名称:”字段中键入ClientEnder
    9. 单击标准属性选项卡。
    10. 传输:下拉列表中选择客户端
    11. 队列管理器:字段中输入Ender
    12. 端口:字段中输入1414
    13. Channel:字段中输入java.channel
    14. HostName:字段中输入localhost 。 该对话框应如图4所示
      图4.创建新的MQQueueConnectionFactory
      创建新的MQQueueConnectionFactory
    15. 单击确定
    16. 退出JMSAdminGUI。

    运行示例程序

    运行样本程序以测试通过客户机传输对WebSphere MQ的访问。 请注意,尽管程序使用的是不同的队列连接工厂,但它们使用的队列与以前相同。

    1. 在Application Developer中,从主菜单中选择Run> Run History> QReceiverUI
    2. Connection:字段中输入 ClientEnder ,然后按Enter或单击Set
    3. Queue:字段中输入 EnderQ并按Enter或单击Set
    4. 从主菜单中,选择“运行”>“运行历史记录”>“ QSenderUI”
    5. Connection:字段中输入 ClientEnder ,然后按Enter或单击Set
    6. Queue:字段中输入 EnderQ并按Enter或单击Set
    7. 使“队列发送者”和“队列接收器”窗口均可见。
    8. 在“队列发件人”的“ 消息:”字段中键入文本,然后按Enter或单击“ 发送”
    9. 消息文本应出现在“队列接收器”窗口中。
    10. 完成后,通过单击右上角的X关闭两个窗口。

    这些说明只能在单台计算机上使用。 我鼓励您在未安装WebSphere MQ的另一台计算机上运行QReceiverUI和QSenderUI程序,以真正演示客户端传输。 确保QueueConnectionFactory的host属性具有安装WebSphere MQ的计算机的名称,并且可以通过DNS或操作系统HOSTS将该名称解析为IP地址。 您还可以提供主机属性的IP地址。 还必须配置JMSAdminGUI用作其提供程序URL的队列管理器以进行客户端传输。

    远程排队

    到目前为止,您一直在传输的消息已放在一个队列中并从同一队列中读取。 尽管在某些情况下需要此配置,但企业消息传递系统的真正功能在于其将消息从一台计算机移动到另一台计算机的能力,从而使应用程序程序员不必知道网络和通信协议的细节。 在WebSphere MQ中,此消息流发生在队列管理器之间。 与上一节中描述的客户机配置不同,队列管理器之间不需要专用的网络连接。 当与接收队列管理器的连接不可用时,发送队列管理器可以存储消息,然后在恢复通信后立即转发累积的消息。

    远程队列的本地定义

    此方案的配置需要远程队列的本地定义 ,简称为远程队列 。 对于应用程序,远程队列看起来与普通本地队列没有什么不同。 但是,WebSphere MQ“知道”放置在远程队列上的消息实际上是发往另一个队列管理器上的队列的;它实际上是发往另一个队列管理器的。 然后采取必要步骤将消息移至目标队列。 该配置还需要传输队列 ,这是队列管理器用来保存发往另一个队列管理器的消息的一种本地队列。

    在这里,您将在计算机上定义第二个队列管理器,并在该队列管理器上定义本地队列,这将成为远程队列的目标。

    1. 在WebSphere MQ资源管理器中,右键单击“ 队列管理器”,然后选择“ 新建”>“队列管理器”
    2. 队列管理器名称:字段中输入Petra
    3. “死信队列:”字段中键入SYSTEM.DEAD.LETTER.QUEUE
    4. 单击下一步三下。
    5. 在“ 侦听端口号:”字段中键入1415 (队列管理器Ender已经在使用默认端口1414,因此此队列管理器必须使用其他端口)。
    6. 点击完成
    7. 单击Petra旁边的+号。
    8. 右键单击队列,然后选择新建>本地队列 。 (参见图5。
      图5.创建新队列
      创建新队列
    9. 名称:字段中输入PetraQ 。 点击完成

    现在,在原始队列管理器上,您需要创建一个传输队列和一个远程队列,将其指向第二个队列管理器上的目标队列。

    1. 右键单击Ender下的Queues ,然后选择New> Local Queue
    2. 名称:字段中输入Petra 。 (按照惯例,传输队列是为将用于进行通信的远程队列管理器命名的。)
    3. 单击下一步
    4. 用法:下拉列表中选择传输 。 (参见图6。
      图6.配置传输使用队列
      配置传输使用队列
    5. 点击完成
    6. 右键单击Ender下的Queues ,然后选择New> Remote Queue Definition
    7. 名称:字段中输入RemotePetraQ
    8. 单击下一步
    9. 在“ 远程队列:”字段中键入PetraQ
    10. 在“ 远程队列管理器:”字段中输入Petra
    11. 传输队列字段中输入Petra 。 (参见图7。
      图7.配置远程队列
      配置远程队列
    12. 点击完成

    沟通渠道

    在队列管理器之间传输消息的机制称为通信通道 。 要创建通信通道,必须在每个队列管理器上创建一个通道定义-正在发送消息的队列管理器上的发送者通道 ,以及正在接收消息的队列管理器上的接收者通道 。 通信通道的两端具有相同的名称,通常指示消息流的方向。

    1. 在WebSphere MQ Explorer中,单击PetraAdvanced旁边的+号。
    2. 右键单击Channels,然后选择New> Receiver Channel 。 (请参见图8。
      图8.创建接收器通道
      建立接收者频道
    3. 名称:字段中输入Ender_2_Petra
    4. 点击完成
    5. 右键单击Ender下的Channels ,然后选择New> Sender Channel
    6. 名称:字段中输入Ender_2_Petra
    7. 单击下一步
    8. 在“ 连接名称:”字段中键入localhost(1415)
    9. 在“ 传输队列:”字段中输入Petra 。 (参见图9。
      图9.发送者通道属性
      发件人通道属性
    10. 点击完成
    11. 右键单击Ender_2_Petra发件人通道,然后选择开始 。 (参见图10。)
      图10.启动发送者通道
      开始发送者频道

    运行示例程序

    现在,您可以运行示例程序来测试远程排队。 因为我们使用的是SupportPac ME01,所以您无需显式创建JMS管理的对象;因此,无需执行任何操作。 隐式JMS管理的对象可用于我们创建的队列管理器和队列。 您必须更改接收程序以将Petra队列管理器用作其提供程序URL,因为这是接收队列所在的位置。

    1. 在Application Developer中,从主菜单中选择Run> Run
    2. 在“ 配置:”列表中选择QReceiverUI
    3. 单击参数选项卡。
    4. 将java.naming.provider.url更改为Petra 。 (参见图11。
      图11. QReceiverUI参数
      QReceiverUI参数
    5. 点击应用 。 接下来,点击运行
    6. Connection:字段中输入 Petra并按Enter或单击Set
    7. Queue:字段中输入 PetraQ并按Enter或单击Set
    8. 从主菜单中,选择“运行”>“运行历史记录”>“ QSenderUI”
    9. Connection:字段中输入 Ender ,然后按Enter或单击Set
    10. Queue:字段中输入 RemotePetraQ并按Enter或单击Set
    11. 使“队列发送者”和“队列接收器”窗口均可见。
    12. 在“队列发件人”的“ 消息:”字段中键入文本,然后按Enter或单击“ 发送”
    13. 您应该看到消息文本出现在“队列接收器”窗口中。
    14. 完成后,通过单击右上角的X关闭两个窗口。

    为了更有效地演示远程排队,建议您在两台不同的计算机上设置WebSphere MQ,并在一台计算机上运行QSenderUI,在另一台计算机上运行QReceiverUI。 发送者通道的连接名称必须是可以解析为IP地址或实际IP地址的名称。 每台计算机上的每个队列管理器都可以使用端口1414(WebSphere MQ的默认端口),并且不必在连接名称后的括号中放置端口号。

    在结束对WebSphere MQ配置的讨论之前,您应该了解客户机访问和远程排队可以结合使用。 因此,一台计算机上的应用程序可以使用客户端访问将消息放在第二台计算机上运行的队列管理器的远程队列上。 该队列管理器可以将消息传输到在第三台计算机上运行的队列管理器上的目标队列。 然后,在第四台计算机上运行的应用程序可以使用客户端访问从目标队列中检索消息。 图12中说明了这种情况。

    图12.客户端访问和远程排队的组合
    客户端访问和远程排队相结合

    发布/订阅

    在接下来的两部分中,您将配置和运行示例程序,以演示JMS的发布/订阅功能。 在第一部分中,您将使用WebSphere MQ作为JMS提供程序来运行程序。 在第二部分中,您将使用Application Developer随附的WebSphere测试环境提供的内置JMS提供程序来运行程序。

    使用WebSphere MQ运行样本程序

    配置WebSphere MQ运行时环境

    WebSphere MQ带有内置的消息代理,以支持发布/订阅应用程序。 您将运行提供的命令文件来设置代理,然后启动代理进行操作。

    1. 打开命令提示符,然后转到目录C:\ WSMQ \ Java \ bin。
    2. 键入runmqsc Ender<mqjms_psq.mqsc 。 (参见图13。
      图13.准备WebSphere MQ消息代理
      准备WebSphere MQ消息代理
    3. Enter键
    4. 输入 strmqbrk -m Ender并按Enter
    5. 关闭命令提示符。

    安装示例代码

    1. 下载名为i-mqrad2.zip的示例代码文件。 (下载后,我将其重命名为mq6rad6_2.zip。)(单击可下载资源以获得链接)。
    2. 将此文件解压缩到系统上的文件夹中。 (在我的系统上,我将其提取到Windows桌面上的一个名为mq6rad6_2的文件夹中。)此文件夹中将有两个文件:MQPubSub.zip和EMQPubSub.zip。
    3. 在Application Developer中,从主菜单中选择File> Import
    4. 选择Project Interchange作为导入源,然后单击Next
    5. 在“ 从zip文件:”字段中,输入先前提取的MQPubSub.zip文件的位置。
    6. 选中MQPubSub项目旁边的复选框,然后单击Finish

    查看示例代码

    在设置,运行和测试示例代码之前,请看一下代码在做什么。 像在第1部分中一样,我们将不会花费任何时间来研究用户界面类,而只需花一些时间使用JMS代码。

    ChatUser类

    ChatUser类用于由ChatUserUI发布消息,订阅,并从进入主题接收消息。 在点对点示例程序中,一个类用于发送消息,另一类用于接收消息。 发送和接收都由ChatUser处理。 在ChatUser中使用JMS编程的方法类似于点对点类中的方法。 这些是setConnection()setTopic()publishMessage()onMessage() 。 首先看清单1所示的setConnection()

    清单1. setConnection方法
    public void setConnection(String connectionName)
       throws JMSException, NamingException, Throwable {
    
       try {
          close();
          TopicConnectionFactory factory =
             (TopicConnectionFactory) getInitContext().lookup(connectionName);
          connection = factory.createTopicConnection();
          publisherSession =
             connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
          subscriberSession =
             connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
       } catch (Throwable e) {
          setExceptionMessage(e);
          throw e;
       }
    }

    close()的调用可确保已正确关闭任何活动的JMS对象。 然后,通过JNDI进行查找,以获取名称作为connectionName参数传入的TopicConnectionFactory 。 一旦TopicConnectionFactory被检索和TopicConnection创建两个TopicSession创建参数,一个用于发布和一个订阅。 可以从单个会话发布和接收消息,但前提是未为该会话激活异步消息传递。 因为ChatUser依赖于异步消息传递,所以我们需要两个会话。

    下一个要查看的方法是setTopic() 。 在GUI中输入Topic名称时,将调用此方法,如清单2所示。

    清单2. setTopic()方法
    public void setTopic(String topicName)
       throws JMSException, NamingException, Throwable {
    
       try {
          stop();
          Topic topic = (Topic) getInitContext().lookup(topicName);
          publisher = publisherSession.createPublisher(topic);
          subscriber = subscriberSession.createSubscriber(topic);
          subscriber.setMessageListener(this);
          connection.start();
          sendEnterMessage();
       } catch (Throwable e) {
          publisher = null;
          subscriber = null;
          setExceptionMessage(e);
          throw e;
       }
    }

    stop()的调用可确保TopicConnection被停止,并且所有活动的TopicPublisherTopicSubscriber对象均被关闭。 然后使用topicName参数从JNDI检索Topic对象。 接下来,使用各自的TopicSession对象创建TopicPublisherTopicSubscriber对象。 为TopicSubscriber设置了用于异步消息传递的消息侦听器; ChatUser实现了MessageListener接口,当消息到达订阅主题时,将异步调用ChatUseronMessage()方法。 然后启动TopicConnectionsendEnterMessage() ,它发布消息,宣布用户已进入聊天室。

    发布消息时,将publishMessage()方法,如清单3所示。

    清单3. publishMessage()方法
    public void publishMessage(String message) throws JMSException, Throwable {
       try {
          internalPublishMessage(getUserName() + ": " + message);
       } catch (Throwable e) {
          setExceptionMessage(e);
          throw e;
       }
    }

    如您所见, publishMessage()只是接受传入的String ,为用户名加上publishMessage() ,然后将String传递给私有方法internalPublishMessage() 。 在internalPublishMessage() ,使用text参数创建一个TextMessage ,并使用TopicPublisher发布消息。

    ChatUser查看的最后一个方法是onMessage() ,如清单4所示。

    清单4. ChatUser onMessage方法
    public void onMessage(Message message) {
    
       String msgText = null;
       try {
          msgText = ((TextMessage) message).getText();
       } catch (Throwable e) {
          setExceptionMessage(e);
          msgText = getExceptionMessage();
       } finally {
          setMessage(msgText);
       }
    }

    每当消息发布到订阅的主题时,JMS都会调用此方法。 消息的文本用于设置ChatUser对象的message属性。 该代码应该看起来很熟悉,因为它与QReceiveronMessage()方法QReceiver 。 使用JMS编程,接收发送到队列的消息和接收发布到主题的消息是完全相同的。

    ChatMonitor类

    除了没有消息发布功能之外, ChatUser类与ChatMonitor类非常相似。 该setConnection()setTopic()方法很像在ChatUser ,除了没有关于发布代码,所以我们不会去对这些详细。 但是,让我们看一下清单5所示的onMessage()方法。

    清单5. ChatMonitor onMessage方法
    public void onMessage(Message message) {
    
       String msgText = null;
       try {
          msgText =
             (((Topic) message.getJMSDestination()).getTopicName()
                + ": "
                + ((TextMessage) message).getText());
       } catch (Throwable e) {
          setExceptionMessage(e);
          msgText = getExceptionMessage();
       } finally {
          setMessage(msgText);
       }
    }

    首先,在getJMSDestination()Message对象上调用getJMSDestination()方法。因为已知消息来自Topic ,所以Destination被转换为Topic 。 然后,对Topic上的getTopicName()进行调用,将主题名称添加到消息文本的前面,并将所得的String用于设置ChatMonitormessage属性。

    创建JMS管理的对象

    现在,您将使用JMSAdminGUI定义TopicConnectionFactory和一组供聊天程序使用的分层Topics

    1. 在Application Developer中,选择“运行”>“运行历史记录”>“ JMSAdminGUI”
    2. 单击“ 打开最近的配置文件:”按钮,选择C:/workspace/JMSAdminGUI/WMQ.config ,然后单击“ 确定”
    3. 从主菜单中,选择“ 对象”>“新建”>“ MQTopicConnectionFactory”
    4. 在“ 对象名称:”字段中键入EnderTCF
    5. 单击标准属性选项卡。
    6. 队列管理器:字段中输入Ender
    7. Broker QMgr:字段中输入Ender 。 (参见图14。
      图14.创建新的MQTopicConnectionFactory
      创建新的MQTopicConnectionFactory
    8. 单击确定
    9. 从主菜单中,选择“ 对象”>“新建”>“主题”
    10. 在“ 对象名称:”字段中键入Java
    11. 单击标准属性选项卡。
    12. 主题:字段中输入computers/Java 。 (参见图15。
      图15.创建新的MQTopicConnectionFactory
      创建新的MQTopicConnectionFactory
    13. 单击确定
    14. 请按照步骤9到13来创建其他主题,如表1所示。 完成后,退出JMSAdminGUI。
    表1.其他主题
    对象名称: 话题:
    的Linux 电脑/ Linux
    所有计算机 电脑/*
    赛博朋克 书籍/数码朋克
    诗歌 书/诗歌
    全书 图书/*
    AllTopics *

    运行示例程序

    现在,您可以运行示例程序来测试发布/订阅。 您将需要像使用点对点程序一样为每个程序设置VM参数和类路径。

    1. 在MQPubSub项目中右键单击ChatUI,然后选择Run> Run
    2. 在“ 配置:”列表中选择“ Java应用程序 ”。
    3. 点击新建
    4. 单击参数选项卡。
    5. 在“ VM参数:”文本区域中,键入以下参数,每个参数之间用空格分隔。
      • -Djava.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory
      • -Djava.naming.provider.url=Ender
      • -Dsun.boot.library.path=C:\RAD\eclipse\jre\bin;C:\WSMQ\Java\lib
      除了参数之间的空格外,不应有其他空格或回车符。 确保在每个参数之前包括连字符。 参数将包装在VM参数:文本区域中。 只要您不键入空格(参数之间的空格除外)或插入回车符,就可以了。
    6. 单击类路径选项卡。
    7. 单击“ Classpath:”列表中的“ Bootstrap项 ”。
    8. 单击添加外部JARS
    9. 导航到MQTools文件夹,然后选择以下JAR文件:
      • com.ibm.mq.pcf.jar
      • mqcontext.jar
    10. 点击打开
    11. 再次单击添加外部JARS
    12. 导航到C:\ WSMQ \ Java \ lib并选择以下JAR文件:
      • com.ibm.mq.jar
      • com.ibm.mqjms.jar
      • 连接器.jar
      • dhbcore.jar
      • jms.jar
    13. 点击打开
    14. 点击运行
    15. 在“聊天”窗口的“ 用户名:”字段中键入User1 ,然后按Enter或单击“ 设置”
    16. Connection:字段中输入 EnderTCF ,然后按Enter或单击Set
    17. 主题:字段中输入 Java ,然后按Enter或单击设置
    18. 将显示消息“用户1已进入聊天室”。
    19. 在Application Developer中,从主菜单中选择Run> Run History> ChatUI
    20. 在第二个“聊天”窗口中,在“ 用户名:”字段中键入User2 ,然后按Enter或单击“ 设置”
    21. Connection:字段中输入 EnderTCF ,然后按Enter或单击Set
    22. 主题:字段中输入 Java ,然后按Enter或单击设置
    23. 您将在两个聊天窗口中看到消息“用户2已进入聊天室”。
    24. 在任一窗口的消息:字段中,键入任何文本,然后按Enter或单击发送 。 消息文本显示在两个窗口中,并以发布消息的用户名作为前缀。
    25. 尝试将每个窗口中的主题更改为使用JMSAdminGUI创建的其他主题之一。 但是,请勿尝试使用AllComputers,AllBooks或AllTopics,因为不允许发布对通配符(*)主题进行通配,而只能进行订阅。
    26. 另外,请尝试使用其他用户名运行其他ChatUI实例。
    27. 在继续下一步之前,将其中一个“聊天”窗口上的主题更改为Java。
    28. 返回到应用程序开发人员。
    29. 从主菜单中,选择运行>运行
    30. 右键单击Configurations:列表中的ChatUI ,然后选择Duplicate
    31. ChatUI(1)重命名为ChatMonitorUI
    32. Main class字段更改为com.ibm.qbda.mq.pubsub.ChatMonitorUI
    33. 点击应用
    34. 点击运行
    35. 在聊天监视器窗口的“ 连接:”字段中键入EnderTCF ,然后按Enter或单击“ 设置”
    36. 主题:字段中输入 AllComputers ,然后按Enter或单击设置
    37. 切换到使用Java主题的聊天窗口,确保聊天监视器窗口可见并发送消息。
    38. 消息文本将显示在聊天监视器窗口中,该窗口之前是消息发布到的主题和发布消息的用户。
    39. 切换到使用Java主题的聊天窗口,然后在Topic:字段中键入Linux ,然后按Enter或单击Set
    40. 从该聊天窗口发送消息。
    41. 消息文本将显示在聊天监视器窗口中。
    42. 在使用Linux主题的聊天窗口中,输入Cyberpunk并按Enter或单击Set
    43. 从该聊天窗口发送消息。
    44. 您不会在聊天监视器窗口中看到该消息。
    45. 在聊天监视器窗口中,输入AllTopics并按Enter或单击设置
    46. 切换到使用“计算机朋克”主题的聊天窗口,然后发送一条消息。
    47. 您将在聊天监视器窗口中看到该消息。
    48. 完成后,通过单击右上角的X关闭所有聊天和聊天监控窗口。

    使用WebSphere Test Environment运行样本程序

    现在,您可以使用Application Developer中包含的WebSphere测试环境提供的内置JMS提供程序来运行示例程序。

    安装示例代码

    与点对点程序一样,我将pub / sub程序重新打包为应用程序客户端,以便使用WebSphere测试环境运行。

    1. 在Application Developer中,从主菜单中选择File> Import
    2. 选择Project Interchange作为导入源,然后单击Next
    3. 在“ 从zip文件:”字段中,输入先前提取的EMQPubSub.zip文件的位置。
    4. 单击全选 ,然后单击完成

    创建JMS管理的对象

    1. 切换到Application Developer中的J2EE透视图。
    2. 在“ 服务器”视图中,右键单击WebSphere Application Server v6.0,然后选择启动
    3. 等待服务器的状态更改为已启动。
    4. 右键单击服务器,然后选择“运行管理控制台”
    5. 出现控制台时,使用任何用户ID登录。
    6. 单击左侧导航栏中的资源
    7. 单击“ JMS提供程序”
    8. 单击默认消息
    9. 从“ 连接工厂”列表中单击JMS主题连接工厂
    10. 点击新建
    11. 名称字段中输入BeanTCF
    12. JNDI名称字段中输入jms/BeanTCF
    13. 总线名称下拉列表中选择BeanBus
    14. 单击确定
    15. 点击屏幕顶部的保存
    16. 点击保存
    17. 单击左侧导航栏中的默认消息
    18. 从“ 目标”列表中单击JMS主题
    19. 点击新建
    20. 名称字段中输入Java
    21. JNDI名称字段中输入jms/Java
    22. 主题名称字段中输入computers/Java
    23. 总线名称下拉列表中选择BeanBus
    24. 您的屏幕应如图16所示
      图16.创建新的JMS主题
      创建新的JMS主题
    25. 单击确定
    26. 按照步骤19到25创建其他主题,所有主题均使用BeanBus总线,如表2所示。
    表2.其他主题
    名称 JNDI名称 主题名称
    的Linux jms / Linux 电脑/ Linux
    所有计算机 jms / AllComputers 电脑/*
    赛博朋克 jms / Cyber​​punk 书籍/数码朋克
    诗歌 jms /诗歌 书/诗歌
    全书 jms / AllBooks 图书/*
    1. 创建所有主题后,请单击屏幕顶部的“ 保存 ”。
    2. 点击保存
    3. 退出管理控制台。
    4. 在“ 服务器”视图中右键单击WebSphere Application Server v6.0 ,然后选择重新启动>启动

    运行示例程序

    1. Project Explorer视图中右键单击EChat ,然后选择Run> Run
    2. 在“ 配置:”列表中选择WebSphere v6.0 Application Client
    3. 右键单击并选择新建
    4. 名称:字段中输入EChat
    5. 单击“ 应用” ,然后单击“运行”
    6. 在聊天窗口的用户名:字段中输入 User1 ,然后按Enter或单击设置
    7. Connection:字段中输入 jms/BeanTCF ,然后按Enter或单击Set
    8. 主题:字段中输入 jms/Java ,然后按Enter或单击设置
    9. 将显示“用户1已进入聊天室”消息。
    10. 在Application Developer中,从主菜单中选择Run> Run History> EChat
    11. 在第二个聊天窗口中,在“ 用户名:”字段中键入User2 ,然后按Enter或单击“ 设置”
    12. Connection:字段中输入 jms/BeanTCF ,然后按Enter或单击Set
    13. 主题:字段中输入 jms/Java ,然后按Enter或单击设置
    14. 您将在两个聊天窗口中看到消息“ User2已进入聊天室”。
    15. 在任一窗口的消息:字段中,键入任何文本,然后按Enter或单击发送 。 消息文本显示在两个窗口中,并以发布消息的用户名作为前缀。
    16. 尝试将每个窗口中的主题更改为使用JMSAdminGUI创建的其他主题之一。 但是,请勿尝试使用jms / AllComputers或jms / AllBooks,因为发布不允许通配(*)主题,只能订阅。
    17. 另外,请尝试使用其他用户名运行其他EChat实例。
    18. 在继续下一步之前,将其中一个聊天窗口中的主题更改为Java。
    19. 返回到应用程序开发人员。
    20. 从主菜单中,选择运行>运行
    21. 右键单击“ 配置:”列表中的EChat ,然后选择“ 重复”
    22. EChat(1)重命名为EChatMonitor
    23. 将“ 应用程序客户端模块:”字段更改为EChatMonitor
    24. 点击应用
    25. 点击运行
    26. 在聊天监控器窗口的Connection:字段中输入 jms/BeanTCF ,然后按Enter或单击Set
    27. 主题:字段中输入 jms/AllComputers ,然后按Enter或单击设置
    28. 切换到使用jms / Java主题的聊天窗口,确保聊天监视器窗口可见并发送消息。
    29. 消息文本将显示在聊天监视器窗口中,该窗口之前是消息发布到的主题和发布消息的用户。
    30. 切换到使用jms / Java主题的聊天窗口,然后在主题:字段中输入jms/Linux 。 接下来,按Enter或单击“ 设置”
    31. 从该聊天窗口发送消息。
    32. 消息文本将显示在聊天监视器窗口中。
    33. 在使用jms / Linux主题的聊天窗口中,键入jms/Cyberpunk ,然后按Enter或单击Set
    34. 从该聊天窗口发送消息。
    35. 您不会在聊天监视器窗口中看到该消息。
    36. 完成后,通过单击右上角的X关闭所有聊天和聊天监控窗口。
    37. 关闭Application Developer之前,请停止服务器测试环境。

    摘要

    在本教程中,您选择了上一教程的开头,并探讨了JMS编程中的其他一些主题,包括WebSphere MQ客户端传输,WebSphere MQ远程排队和JMS发布/订阅编程。

    在下一个教程中,您将研究如何使用WebSphere MQ作为WebSphere Application Server中的JMS提供程序。 您还将使用JMS 1.1中提供的统一域接口来探索JMS编程。


    翻译自: https://www.ibm.com/developerworks/websphere/tutorials/i-mqrad2/i-mqrad2.html

    展开全文
  • WebSphere 安装部署,发布web应用

    万次阅读 2017-11-20 23:51:08
    目录 一、WebSphere 是什么? 二、安装 三、添加服务 四、部署&发布应用 五、访问web应用 一、WebSphere 是什么?WebSphere 为 SOA 环境提供软件,以实现动态的、互联的业务流程,为所有业务情形提供高度有效的...

    目录

    • 一、WebSphere 是什么?
    • 二、安装
    • 三、添加服务
    • 四、部署&发布应用
    • 五、访问web应用

    一、WebSphere 是什么?

    WebSphere 为 SOA 环境提供软件,以实现动态的、互联的业务流程,为所有业务情形提供高度有效的应用程序基础架构。WebSphere 是 IBM 的应用程序和集成软件平台,包含所有必要的中间件基础架构(包括服务器、服务和工具),这些基础架构是创建、部署、运行和持续监视企业级 Web 应用程序和跨平台、跨产品的解决方案所必需的。


    (参考:websphere的war包必须用maven命令打包:命令为package -P websphere)

    本地安装was8.5可参考“was安装参考(IBM WebSphere安装)”文档,里面记载了安装遇到的问题及解决方案,安装包可以从官网下载;


    二.安装

    1.解压DEVELOPERSILAN.agent.installer.win32.win32.x86_64文件:点击install.exe文件
    这里写图片描述

    2.安装websphere,提前注册一个用户,(可以点击下方的是否忘记了密码跳转到一个页面进行注册——该步骤可以忽略,官网下载websphere时是必须注册的)
    这里写图片描述

    点击确定后耐心等待,直到出现下边的界面
    这里写图片描述
    点击下一步后继续耐心等待
    这里写图片描述
    选择共享资源目录(目录自己定义一个)
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    点击安装,这里需要耐心等待,需要比较久的时间

    这里写图片描述

    ![这里写图片描述](https://img-blog.csdn.net/20171120231926449?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3JlZW5zdXJl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)   
    

    三、添加服务

    1.websphere安装完成后,点击开始找到IBM WebSphere 打开ToolBox
    这里写图片描述

    2.点击创建 点击下一步
    这里写图片描述

    这里写图片描述

    3.下一步
    这里写图片描述
    4.下一步 设置用户名密码,这里的用户名密码稍后部署的时候需要用到
    这里写图片描述

    5.此页面展示了服务的具体信息

    这里写图片描述

    这里写图片描述

    6.点击创建,耐心等待

    这里写图片描述
    7.完成
    这里写图片描述
    8.点击完成,稍等一下,会跳出下面的信息框
    这里写图片描述
    9.点击安装验证,再耐心等待,会出现下面的信息
    这里写图片描述

    10.记住上图的端口号 9083,稍后访问系统的时候会用到
    11.把其他对话框关闭掉,这样安装步骤就彻底完成了


    四、部署&发布应用

    1.开始菜单找到IBM WebSphere 找到刚刚创建的服务appSrv04,点击打开
    这里写图片描述

    2.会打开浏览器,网络会禁止这个路径,我们点击继续浏览此网站
    这里写图片描述
    这时候会跳到登录页面,这时候填写之前的用户名,密码。
    这里写图片描述

    3.输入用户名 密码 登录控制台,选择左侧的WebSphere企业应用程序,点击安装,稍等片刻
    这里写图片描述

    4.路径配置war包路径,点击下一步,等待一会,因为这时候在上传程序
    这里写图片描述
    5.选择“快速路径”,点击 ‘’下一步”
    这里写图片描述
    6.继续下一步
    这里写图片描述
    7.勾选复选框,下一步
    这里写图片描述
    8.勾选复选框,下一步

    这里写图片描述

    9.配置context Path 配置一下访问根路径,点击‘’下一步‘’
    这里写图片描述
    10.点击下一步
    这里写图片描述
    11.点击下一步
    这里写图片描述
    12.完成后,稍等片刻 点击保存
    这里写图片描述
    13.点击保存后,稍等片刻,直到出现下边的界面,选中资源,点击启动
    这里写图片描述
    14.应用程序状态变成绿色的小箭头,证明启动成功了
    这里写图片描述
    15.这时候部署工作就完成了,接下来就是访问系统了


    五、访问web应用

    1.websphere访问端口
    2.地址:http://localhost:9083/authsystem4
    (authsystem4即为第6部设置的context path)

    展开全文
  • websphere 发布配置

    千次阅读 2014-07-03 15:47:32
    安装目录:/opt/IBM/WebSphere/ 启动方式:/opt/IBM/WebSphere/AppServer/bin/startServer.sh server1 1.2. 登陆控制台 管理地址:http://l:9060/admin   Was管理员:wasadmin   密码:W@158*mm 1.3.

    1. webSphere操作指引

    1.1. 安装目录及启动方式

    安装目录:/opt/IBM/WebSphere/

    启动方式:/opt/IBM/WebSphere/AppServer/bin/startServer.sh server1


    1.2. 登陆控制台

    管理地址:http://localhost:9060/admin

    Was管理员:wasadmin

    密码:W@158*mm


    1.3. 查看系统日志

    系统错误日志

    /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/opt

    /IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemE

    Rr.log

     

    系统普通日志:

    /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/opt

    /IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1/SystemO

    Ut.log

     

    1.4. 发布项目

                           

     

     

     

     

     

     

    Next 5步后,注意点击保存

     

     

    1.5. 配置JDBC驱动

     

    选择jdbc数据源类型,next到最后

     

    jdbc providers 连接页面 save保存一下

     

    保存之后,点击oracle jdbc driver(即刚才创建的jdbc 名字),进入一下页面,设置他的class path,配置如下图,

    配置完后,即jdbc 已经ok,接下来要配数据源

     

    1.6. 配置jndi,dataSource

    配置数据源

     

    进入以下界面,输入必填项,点击next

     

    选择刚才创建的jdbc名,点击next 

     

    配置访问数据库的url,点击next 

     

    配置证书,即数据库帐号密码,点击next

     

    跳到以下界面,把它save保存,然后点击刚才创建数据源myLscx02

     

     

     

    配置证书

     

     

    选择新建,如果有就选择已经创建好的即可。


     

    输入相关信息,点击next

     

     

    跳转后,save保存,然后点左侧菜单 data source 可进行测试。

     

     

    如果出现以下信息,说明配置成功!

     

     



    展开全文
  • 本文主要以图片+文字的形式描述如何在webSphere发布应用,比较简单,纯属笔记摘要,供日后浏览。 前提,相关的war已经准备好。 一:配置数据源 1.1配置JAAS-J2C认证 注意保存! 1.2配置数据源 ...

    本文主要以图片+文字的形式描述如何在webSphere下发布应用,比较简单,纯属笔记摘要,供日后浏览。

    前提,相关的war已经准备好。

    配置数据源

    配置JAAS-J2C认证



    注意保存!

    配置数据源








    添加URL.注意选取数据库版本



    注意选择认证别名


    保存好。


    发应用






    选择准备好的war包



    注意,选择发布到的server,勾选选择按钮,选择一条或多条服务器,点击用用,服务器描述会对应改变。



    注意指定上下文



    注意保存!!



    应用正在装载中,等下在需要一步启动,注意查看启动日志,这里只记录重点,启用日志目录。


    /IBM/WebSphere/AppServer/profiles/AppSrv01/logs/listener/SytemOut.log
    注意这里面listener为发布到的server名,注意是变化的。如下图所示


    这里面一个个文件夹都是server。


    最后一步,起应用

    注意查看log日志。查错。

    http://download.csdn.net/detail/weiweiai123456/9169791

    附件为相关发包准备excel文档,仅供参考。















    展开全文
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    更新于2019-12-15 10:38:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长...文章目录...
  • 过程:WebSphere管理平台更新整个war包是更新完成,启动报错,卸载重新部署war包也不行,去集群每个节点发布路径中查看发布的包,发现war包发布不全,经排查是先前同事单独替换文件的时候路径填写错误,war包里发布...
  • Websphere7上发布web程序

    2021-09-14 14:41:38
    websphere7上发布应...
  • 使用websphere发布项目

    2011-07-11 17:10:52
    前段时间,公司的项目必须使用websphere发布,以前没接触过这个破东西,没办法,硬着头皮上了。 在使用was发布项目时,遇到了不少问题。 1、经常忘记保存操作(was下做的操作,最后总会有保存这一步,一定要记得...
  • webSphere

    2019-09-27 06:44:29
    WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的...
  • 它使用系统目录(最好在dmgr服务器上)作为可部署EAR所在的热文件夹以及描述单元中应用程序拓扑的xml文档(通常称为topology.xml)来工作。 该工具由两个文件组成: 一个名为installer.py的jython文件,其中包含...
  • ./EARExpander.sh -ear /appinstall/SSO_war.ear -operationDir /usr/WebSphere/AppServer/profiles/wp_profile/installedApps/eiptest/SSO_war.ear -operation collapse 
  • websphere发布程序出错

    2013-05-22 16:42:18
    当开发好的程序发布websphere上出现异常,可以打开页面,但是访问不了数据库。 1异常1,缺少slf4j-nop.jar,添加该JAR包后出现异常2 2异常2,报websphere javax/persistence/UniqueConstraint.name(), 问题原因...
  • WebSphere Cast Iron(以下称为Cast Iron)提供了一个平台,可以将领先的SaaS提供商的基于云的应用程序与IBM®和其他公司的本地应用程序进行集成。 铸铁允许您以很少的编程经验来开发接口。 您可以轻松地将其用作...
  • websphere8.5 下部署含有CXFwebservice的war包无法正常启动,而相应的war包在tomcat上是可以正常启动的,通过后台的日志分析大致可以定位为相关的cxf类无法找到,其实这些类在项目的lib目录下都是存在的,莫名其妙...
  • WebSphere安装配置文档

    2019-11-08 16:36:37
    WebSphere安装配置文档 1、环境准备 标题
  • 有一次,从eclipse里通过export导出的war包直接部署到Websphere下,安装过程都很顺利,但是class文件和jsp文件都没有被安装到XXXX_ear路径下,查了半天才发现,原来war包里混杂了eclipse以.#打头的一些项目文件 ...
  • WebSphere培训教程(完整版)

    热门讨论 2013-05-14 15:25:17
     标准版(Standard Edition),是整个应用服务器家族的基础,提供从电子商务网站的建构、发布 到管理能力。标准版提供了开放、标准的平台和工具,以加速向电子商务的迁移。新加入的DB2UniversalDatabase5.2 支持,使...
  • Websphere安装配置与项目部署

    万次阅读 2018-07-03 17:46:00
    0x01 下载安装 1、在IBM官网下载安装包 打开下载地址,需注册账户,登录后,选择Windows 64-bit下载... 2、解压缩,运行install.exe文件 ...6、选择共享资源目录 7、选择安装目录,下一步 8、默认简体中文和...
  • Linux下安装Websphere及应用程序发布

    千次阅读 2012-05-18 13:24:12
    Linux下安装Websphere及应用程序发布步骤2010-08-20 10:10阅读(858) ========安装 JDK,IBMJava118-SDK-1.1.8-4.0.i386.rpm ========  假设将 rpm 下载到 /root/rpms,从命令行输入:  ...
  • 我没多想,就打开了内存杀手工具,WID(websphere integration Developer).因为在IBM的中间件上搞啥,用IBM的开发工具,那集成的是的确强劲的。 开发webservice无非就是4个步骤。 1,写个java文
  • 1.WebSphere安装 1. 安装环境: 操作系统: redhat-release-5Server-5.4.0.3 WebSphere版本: WebSphere6.1 安装包名称: was.cd.6100.linux.ia32.tar(请使用服务器集群版) 2. 准备安装环境 将was.cd.6100.linux.ia32....
  • 情景:websphere 发布项目成功,但是在访问的时候,输入用户名和密码后点击登录按钮,长时间等待,然后页面报错 Error 404:SRVE0190E: File not found: index.action 解决方案: 1、登录websphere 控制台 如:...
  • Java知识体系最强总结(2020版)

    千次阅读 多人点赞 2020-03-07 08:35:51
    文章目录 Java面试总结 基础知识 Java概述 基础语法 面向对象 集合框架 IO流 网络编程 常用API 常用工具类库 单元测试 异常 日志 工具 IDEA Eclipse & STS Maven Docker Git GitLab GitKraken Navicat 并发编程 ...
  • WebSphere MQ V7 发布/订阅技术

    千次阅读 2010-11-30 11:30:00
    发布/订阅技术概述 马上下载 WebSphere MQ V7 试用版! 您可以阅读实现 SOA 连接的第一步:WebSphere MQ V7 新功能,以了解更多关于 WebSphere MQ V7 中的新功能,其中包括对发布订阅功能的概述。...
  • websphere部署war包

    千次阅读 2018-03-15 11:10:00
    通过websphere部署以及打包成war的web项目。 (1)安装配置war包,部署项目 登录websphere,进入websphere主页(依次选中) Applications --> Application Types --> websphere Enterprise Application -->...
  • 登录websphere,进入websphere主页(依次选中) Applications --> Application Types --> websphere Enterprise Application --> install 打开选择文件,选择需要上传的war包,然后点击next 。(这里需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,901
精华内容 4,760
关键字:

websphere发布目录