我照着配了,还是出错,我要崩溃了,帮我看看下面一段程序,解决了立刻100分相送,绝不食言。package jmschat;/** * Title: * Description: * Copyright: Copyright (c) 2002 * Company: * @author * @version 1.0 */ //这段程序的目的是发布一个简单的主题,再发送一个消息“hello!”,然后 //再接收这个消息打印出来。import javax.jms.*; import javax.naming.*; import java.util.*;public class JMSSample implements javax.jms.MessageListener{ public JMSSample() { } public void onMessage(javax.jms.Message aMessage) { TextMessage textMessage = (javax.jms.TextMessage) aMessage; try { // Create a stream from the message body // (we need a stream to hand to the parser) String string = textMessage.getText(); System.out.println("receive:"+string); } catch (Exception te) { te.printStackTrace(System.err); } }private void pubandsub() { try{
InitialContext context = new InitialContext(); //取得我们创建JMS连接时所要用到的连接创建器 TopicConnectionFactory tcf =(TopicConnectionFactory)context.lookup("TopicConnectionFactory");/*****在WEBLOGIC上配置了一个名为TopicConnectionFactory的Connection Factries*****/ // 创建JMS连接 TopicConnection conn = tcf.createTopicConnection(); // 从连接中创建JMS session。 // 这样我们就可以创建一个非事务处理、AUTO_ACKNOWLEDGE的连接 TopicSession session = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);//创建一个主题 Topic topic=(Topic)session.createTopic("MyTopic");// 创建主题订阅者 TopicSubscriber subscriber=session.createSubscriber(topic); TopicPublisher publisher = session.createPublisher(topic);// 监听者 subscriber.setMessageListener(this); // 指出我们将要接受信息的连接 conn.start();TextMessage msg = session.createTextMessage(); msg.setText("hello!"); publisher.publish(msg); } catch(Exception e) { System.out.println("failed:"+e.getMessage()); e.printStackTrace(); } }public static void main (String args[]) { JMSSample sample = new JMSSample(); sample.pubandsub(); }}错误提示:org.omg.CORBA.OBJECT_NOT_EXIST: minor code: 0 completed: No at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at com.inprise.vbroker.orb.SE.read(SE.java:28) at com.inprise.vbroker.orb.DelegateImpl.handleReply(DelegateImpl.java:711) at com.inprise.vbroker.orb.DelegateImpl.invoke(DelegateImpl.java:606) at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:297) at com.inprise.vbroker.orb.RequestImpl._invoke(RequestImpl.java:195) at com.inprise.vbroker.orb.RequestImpl.invoke(RequestImpl.java:130) at org.omg.CosNaming._NamingContextStub.resolve(_NamingContextStub.java:156) at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java:324) at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:373) at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:351) at javax.naming.InitialContext.lookup(InitialContext.java:350) at javax.naming.InitialContext.lookup(InitialContext.java:350) at jmschat.JMSSample.pubandsub(JMSSample.java:50) at jmschat.JMSSample.main(JMSSample.java:80)帮帮忙!
有具体在WEBLOGIC中如何配置的文档么?
* Title:
* Description:
* Copyright: Copyright (c) 2002
* Company:
* @author
* @version 1.0
*/
//这段程序的目的是发布一个简单的主题,再发送一个消息“hello!”,然后
//再接收这个消息打印出来。import javax.jms.*;
import javax.naming.*;
import java.util.*;public class JMSSample implements javax.jms.MessageListener{ public JMSSample() {
} public void onMessage(javax.jms.Message aMessage) { TextMessage textMessage = (javax.jms.TextMessage) aMessage;
try { // Create a stream from the message body
// (we need a stream to hand to the parser)
String string = textMessage.getText();
System.out.println("receive:"+string);
}
catch (Exception te) {
te.printStackTrace(System.err);
}
}private void pubandsub()
{ try{
InitialContext context = new InitialContext(); //取得我们创建JMS连接时所要用到的连接创建器
TopicConnectionFactory tcf =(TopicConnectionFactory)context.lookup("TopicConnectionFactory");/*****在WEBLOGIC上配置了一个名为TopicConnectionFactory的Connection Factries*****/
// 创建JMS连接
TopicConnection conn = tcf.createTopicConnection();
// 从连接中创建JMS session。
// 这样我们就可以创建一个非事务处理、AUTO_ACKNOWLEDGE的连接
TopicSession session = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);//创建一个主题
Topic topic=(Topic)session.createTopic("MyTopic");// 创建主题订阅者
TopicSubscriber subscriber=session.createSubscriber(topic);
TopicPublisher publisher = session.createPublisher(topic);// 监听者
subscriber.setMessageListener(this);
// 指出我们将要接受信息的连接
conn.start();TextMessage msg = session.createTextMessage();
msg.setText("hello!");
publisher.publish(msg);
} catch(Exception e)
{
System.out.println("failed:"+e.getMessage());
e.printStackTrace();
}
}public static void main (String args[])
{
JMSSample sample = new JMSSample();
sample.pubandsub();
}}错误提示:org.omg.CORBA.OBJECT_NOT_EXIST: minor code: 0 completed: No at java.lang.Class.newInstance0(Native Method) at java.lang.Class.newInstance(Class.java:237) at com.inprise.vbroker.orb.SE.read(SE.java:28) at com.inprise.vbroker.orb.DelegateImpl.handleReply(DelegateImpl.java:711) at com.inprise.vbroker.orb.DelegateImpl.invoke(DelegateImpl.java:606) at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:297) at com.inprise.vbroker.orb.RequestImpl._invoke(RequestImpl.java:195) at com.inprise.vbroker.orb.RequestImpl.invoke(RequestImpl.java:130) at org.omg.CosNaming._NamingContextStub.resolve(_NamingContextStub.java:156) at com.sun.jndi.cosnaming.CNCtx.callResolve(CNCtx.java:324) at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:373) at com.sun.jndi.cosnaming.CNCtx.lookup(CNCtx.java:351) at javax.naming.InitialContext.lookup(InitialContext.java:350) at javax.naming.InitialContext.lookup(InitialContext.java:350) at jmschat.JMSSample.pubandsub(JMSSample.java:50) at jmschat.JMSSample.main(JMSSample.java:80)帮帮忙!
另外,看错误好像是 MyTopic 没有找到,在控制台上看看其配置.
肯定是找不到对象的在weblogic6以上的版本中提供console进行配置
很简单的我去年配成功了,但源码不在身边,只有一个小地方需要注意。
而且也可以通过接收者调用recieve方法把消息的内容收下来,
但是如果我通过添加一个listener来接收消息,却没法收下来!
该怎么办?