谁调通过Weblogic700的JMS程序(Queue)

BonnieYuan 2002-11-21 05:34:35
//MessageDrivenBean

package com.bluecode.j2ee.jms;

import javax.ejb.*;
import javax.jms.*;
import javax.naming.*;

public class MSGBean implements MessageDrivenBean, MessageListener {
private MessageDrivenContext messageDrivenContext;
public void ejbCreate() throws CreateException {
System.out.println("--> MSGBean.ejbCreate()");
}
public void ejbRemove() {
System.out.println("--> MSGBean.ejbRemove()");
}
public void onMessage(Message msg) {
System.out.println("--> MSGBean.onMessage()");
MapMessage map = (MapMessage) msg;
try {
System.out.println(map.getString("msgId"));
System.out.println(map.getString("msgTitle"));
System.out.println(map.getString("msgContent"));
}
catch (JMSException e) {
e.printStackTrace(System.out);
}
}
public void setMessageDrivenContext(MessageDrivenContext
messageDrivenContext) {
System.out.println("--> MSGBean.setMessageDrivenContext()");
this.messageDrivenContext = messageDrivenContext;
}
}



//Client

package com.bluecode.j2ee.jms;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

import java.util.Hashtable;
import javax.jms.*;
import javax.naming.*;

public class MSGClient {

public MSGClient() {
}

public void sendMessage() {
try {
Hashtable hash = new Hashtable();

hash.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFact
ory");
hash.put(Context.PROVIDER_URL,"t3://yyuan:7001");
Context jndiContext = new InitialContext(hash);
QueueConnectionFactory queueConnectionFactory =
(QueueConnectionFactory)jndiContext.lookup("MSGQueueConnectionFactory");
Queue queue = (Queue) jndiContext.lookup("MSGQueue");

QueueConnection queueConnection =
queueConnectionFactory.createQueueConnection();
QueueSession queueSession = queueConnection.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
QueueSender queueSender = queueSession.createSender(queue);
MapMessage message = queueSession.createMapMessage();

message.setString ("msgId", "110");
message.setString ("msgTitle", "Queue Message");
message.setString ("msgContent", "Hello,Queue Message");

queueSender.send (message);

} catch(Exception e) {
e.printStackTrace(System.out);
}
}

public static void main(String[] args) {
MSGClient msgClient = new MSGClient();
msgClient.sendMessage();
}
}


上述两个程序我在Weblogic6.1中已经调试通过,但是采用相同的程序和定义在
Weblogic700下却无法调试通过。
在Weblogic700下的表现症状为:
1.MessageDrivenBena部署之后,可以看见它被实例化(设定最小实例Bean个数的
体现)调用ejbCreate()和setMessageDrivenContext()方法之后向控制台答应消息的内
容。
2.客户端程序运行正常,Queue和ConnectionFactory都能够找到。
3.在服务器控制台中,可以监视到运行客户端程序之后发出的消息个数以及字节数
等等。
4.MessageDrivenBean的onMessage()方法没有响应,无法进行方法内部的操作。

兄弟我也是初步接触JMS,但是这个小小的问题困扰我好长时间,希望有经验的老大们
能替小弟指点迷径!

bonnieyuan@263.net



...全文
37 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_linux 2003-02-25
  • 打赏
  • 举报
回复
你遇到这种问题吗?我配置了JMS,客户方程序运行出现如下异常。请问大虾,如何解决?

D:\4_测试~1\CPTest\CP5870~1>java com.inforweb.docs.jms.client.HelloPublisher
Publishing message: Hello World no. 1
An exception occured while testing HelloPublisher: java.lang.UnsupportedOperatio
nException: Cannot override producer destination
java.lang.UnsupportedOperationException: Cannot override producer destination
at weblogic.jms.client.JMSProducer.send(JMSProducer.java:151)
at weblogic.jms.client.JMSProducer.publish(JMSProducer.java:240)
at com.inforweb.docs.jms.client.HelloPublisher.publish(HelloPublisher.ja
va:98)
at com.inforweb.docs.jms.client.HelloPublisher.main(HelloPublisher.java:
131)

D:\4_测试~1\CPTest\CP5870~1>
BonnieYuan 2002-11-22
  • 打赏
  • 举报
回复
再帮忙看看!

1,236

社区成员

发帖
与我相关
我的任务
社区描述
企业软件 中间件技术
社区管理员
  • 中间件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧