请问有没有在weblogic下做JMS成功过的? 配datasource?给什么配datasource啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没做过,你有用到数据库的话就要配datasource 先在service-->jms-->connection factories配置一连接工厂,然后在service-->jms-->server下创建一个消息服务,并且在该消息服务下创建你所要的queue或者topic消息目的。这样就配置还了你的jms了 我就是这样做的啊,但是测试程序告诉我找不到我设置的connection factory,我用的weblogic,咋办? WebLogic7.0缺省就建好了两个ConnectionFactory:javax.jms.TopicConnectionFactory和javax.jms.QueueConnectionFactory;所以没有必要建自己的,当然用自己建的也无所谓。你这样再试试吧:..... try { Properties prop = new Properties(); prop.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); prop.setProperty(InitialContext.PROVIDER_URL,"t3://localhost:7001"); ctx = new InitialContext(prop); qConnFactory = (QueueConnectionFactory)ctx.lookup("javax.jms.QueueConnectionFactory"); queue = (Queue)ctx.lookup("MyJMSQueue"); qConn = qConnFactory.createQueueConnection(); qSession = qConn.createQueueSession(false,Session.AUTO_ACKNOWLEDGE); } catch(Exception e) { e.printStackTrace(); }.......... 看看这个吧,应该有帮助http://www.csdn.net/develop/read_article.asp?id=15760 我照着上面的配置配好了weblogic,然后自己写了一个程序,但在消费者receive()时程序停了,怎么回事?package jmstest;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author unascribed * @version 1.0 */import javax.jms.*;import javax.naming.*;import java.util.Properties;public class testLister { public testLister() { } public static void main(String[] args) { testLister t1 = new testLister(); try{ t1.publish(); t1.comsumer(); }catch(Exception ex){ ex.printStackTrace(); } } public void publish() throws Exception{ log("start publish....."); Context ctx = getInitialContext(); TopicConnectionFactory tConFactory = (TopicConnectionFactory)ctx.lookup("MDBDemoCF"); Topic newTopic = (Topic)ctx.lookup("MDBDemo Topic"); TopicConnection tCon = tConFactory.createTopicConnection(); TopicSession session = tCon.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); TopicPublisher publisher = session.createPublisher(newTopic); TextMessage msg = session.createTextMessage(); msg.setText("Hello"); publisher.publish(msg); log("end publish."); } public void comsumer() throws Exception{ log("start comsumer...."); Context ctx = getInitialContext(); TopicConnectionFactory tConFactory = (TopicConnectionFactory)ctx.lookup("MDBDemoCF"); Topic newTopic = (Topic)ctx.lookup("MDBDemo Topic"); TopicConnection tCon = tConFactory.createTopicConnection(); TopicSession session = tCon.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); TopicSubscriber subscriber = session.createSubscriber(newTopic); tCon.start(); TextMessage msg = (TextMessage)subscriber.receive();//这是这句过不去 log("receiver="+msg.getText()); } private Context getInitialContext() throws NamingException { try { // Get an InitialContext Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); return new InitialContext(h); }catch (NamingException ex) { log("We were unable to get a connection to the WebLogic server at t3://localhost:7001"); log("Please make sure that the server is running."); throw ex; } } private static void log(String s) { System.out.println(s); }} http://www.net7b.com/net7b_tech/lookart.asp?id={C4902551-DAB4-4251-808D-77DA15C63289} 终于搞成功了,帖出来共享://-----------------------------订阅者-------------------------package jmstest;import javax.jms.*;import javax.naming.*;import java.util.*;public class testDurableListener implements MessageListener,Runnable { private String id = ""; private Topic topic = null; private TopicSession session = null; private TopicConnectionFactory tcf = null; private TopicConnection tc = null; private Context ctx = null; private TopicSubscriber scriber = null; public String strTopic = "MDBDemoTopic"; public String strFactory = "MDBDemoCF"; public testDurableListener(String id) { this.id = id; init(); } private void init(){ try{ ctx = getInitialContext(); tcf = (TopicConnectionFactory)ctx.lookup(this.strFactory); tc = tcf.createTopicConnection(); tc.setClientID(id); session = tc.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); topic = (Topic)ctx.lookup(this.strTopic); scriber = session.createDurableSubscriber(topic,id); scriber.setMessageListener(this); tc.start(); }catch(Exception ex){ ex.printStackTrace(); }finally{ try{ ctx.close(); }catch(Exception exx){} } } public void onMessage(Message msg){ try{ TextMessage message = (TextMessage)msg; System.out.println("##"+id+"##"+message.getText()); }catch(Exception ex){ ex.printStackTrace(); } } public void run(){ while(true){ synchronized(this){ try{ wait(); }catch(InterruptedException ex){ //ex.printStackTrace(); } } } } public Context getInitialContext() throws NamingException { try { // Get an InitialContext Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); return new InitialContext(h); }catch (NamingException ex) { throw ex; } }}//--------------------------------发布消息、main----------------------------------package jmstest;import javax.jms.*;import javax.naming.*;import java.util.*;public class testDurable { private Topic topic = null; private TopicSession session = null; private TopicConnectionFactory tcf = null; private TopicConnection tc = null; private Context ctx = null; private TopicPublisher publisher = null; public String strTopic = "MDBDemoTopic"; public String strFactory = "MDBDemoCF"; public testDurable() { } public static void main(String[] args) { testDurableListener lis1 = new testDurableListener("1"); Thread t1 = new Thread(lis1); t1.start(); testDurableListener lis2 = new testDurableListener("2"); Thread t2 = new Thread(lis2); t2.start(); testDurableListener lis3 = new testDurableListener("3"); Thread t3 = new Thread(lis3); t3.start(); testDurable durable = new testDurable(); durable.publishMessage(); } public void publishMessage(){ try{ ctx = getInitialContext(); tcf = (TopicConnectionFactory)ctx.lookup(this.strFactory); tc = tcf.createTopicConnection(); session = tc.createTopicSession(false,Session.AUTO_ACKNOWLEDGE); topic = (Topic)ctx.lookup(this.strTopic); publisher = session.createPublisher(topic); Message msg = session.createTextMessage("hhhhhhhhhhhhhhhhhhhhhhhhh"); msg.setStringProperty("name","john"); msg.setStringProperty("age","26"); publisher.publish(msg); System.out.println("publish complete "); tc.close(); }catch(Exception ex){ ex.printStackTrace(); }finally{ try{ ctx.close(); }catch(Exception exx){} } } public Context getInitialContext() throws NamingException { try { // Get an InitialContext Properties h = new Properties(); h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); h.put(Context.PROVIDER_URL, "t3://localhost:7001"); return new InitialContext(h); }catch (NamingException ex) { throw ex; } }} 在向数据库查询时,传入的中文变成乱码,求解决方案 关于spring的依赖注入 谢谢了 写一个类倒叙输出“hello,world” 面试题,大家都来测试下自己,高手也给带你指点 全文检索,正则表达式,like模糊查询 开发中使用ejb哪些组件 重点在哪。。。。 请做过大型Java Web开发的大虾指点…… 调用webservice的时候怎么处理事务 用人单位注重的能力 finder方法的问题??? j2ee 源代码 idea不能显示中文,该如何解决?
你这样再试试吧:
.....
try {
Properties prop = new Properties();
prop.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
prop.setProperty(InitialContext.PROVIDER_URL,"t3://localhost:7001");
ctx = new InitialContext(prop); qConnFactory = (QueueConnectionFactory)ctx.lookup("javax.jms.QueueConnectionFactory");
queue = (Queue)ctx.lookup("MyJMSQueue");
qConn = qConnFactory.createQueueConnection();
qSession = qConn.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
} catch(Exception e) {
e.printStackTrace();
}
..........
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/import javax.jms.*;
import javax.naming.*;
import java.util.Properties;public class testLister { public testLister() {
}
public static void main(String[] args) {
testLister t1 = new testLister();
try{
t1.publish();
t1.comsumer();
}catch(Exception ex){
ex.printStackTrace();
}
}
public void publish() throws Exception{
log("start publish.....");
Context ctx = getInitialContext();
TopicConnectionFactory tConFactory = (TopicConnectionFactory)ctx.lookup("MDBDemoCF");
Topic newTopic = (Topic)ctx.lookup("MDBDemo Topic");
TopicConnection tCon = tConFactory.createTopicConnection();
TopicSession session = tCon.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
TopicPublisher publisher = session.createPublisher(newTopic);
TextMessage msg = session.createTextMessage();
msg.setText("Hello");
publisher.publish(msg);
log("end publish.");
} public void comsumer() throws Exception{
log("start comsumer....");
Context ctx = getInitialContext();
TopicConnectionFactory tConFactory = (TopicConnectionFactory)ctx.lookup("MDBDemoCF");
Topic newTopic = (Topic)ctx.lookup("MDBDemo Topic");
TopicConnection tCon = tConFactory.createTopicConnection();
TopicSession session = tCon.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
TopicSubscriber subscriber = session.createSubscriber(newTopic);
tCon.start();
TextMessage msg = (TextMessage)subscriber.receive();//这是这句过不去
log("receiver="+msg.getText());
} private Context getInitialContext() throws NamingException {
try {
// Get an InitialContext
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new InitialContext(h);
}catch (NamingException ex) {
log("We were unable to get a connection to the WebLogic server at t3://localhost:7001");
log("Please make sure that the server is running.");
throw ex;
}
} private static void log(String s) {
System.out.println(s);
}}
package jmstest;import javax.jms.*;
import javax.naming.*;
import java.util.*;public class testDurableListener implements MessageListener,Runnable { private String id = ""; private Topic topic = null;
private TopicSession session = null;
private TopicConnectionFactory tcf = null;
private TopicConnection tc = null;
private Context ctx = null;
private TopicSubscriber scriber = null; public String strTopic = "MDBDemoTopic";
public String strFactory = "MDBDemoCF"; public testDurableListener(String id) {
this.id = id;
init();
} private void init(){
try{
ctx = getInitialContext();
tcf = (TopicConnectionFactory)ctx.lookup(this.strFactory);
tc = tcf.createTopicConnection();
tc.setClientID(id);
session = tc.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
topic = (Topic)ctx.lookup(this.strTopic);
scriber = session.createDurableSubscriber(topic,id);
scriber.setMessageListener(this);
tc.start();
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{
ctx.close();
}catch(Exception exx){}
}
} public void onMessage(Message msg){
try{
TextMessage message = (TextMessage)msg;
System.out.println("##"+id+"##"+message.getText());
}catch(Exception ex){
ex.printStackTrace();
}
} public void run(){
while(true){
synchronized(this){
try{
wait();
}catch(InterruptedException ex){
//ex.printStackTrace();
}
}
}
} public Context getInitialContext() throws NamingException {
try {
// Get an InitialContext
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new InitialContext(h);
}catch (NamingException ex) {
throw ex;
}
}
}//--------------------------------发布消息、main----------------------------------
package jmstest;import javax.jms.*;
import javax.naming.*;
import java.util.*;public class testDurable { private Topic topic = null;
private TopicSession session = null;
private TopicConnectionFactory tcf = null;
private TopicConnection tc = null;
private Context ctx = null;
private TopicPublisher publisher = null; public String strTopic = "MDBDemoTopic";
public String strFactory = "MDBDemoCF"; public testDurable() {
} public static void main(String[] args) {
testDurableListener lis1 = new testDurableListener("1");
Thread t1 = new Thread(lis1);
t1.start(); testDurableListener lis2 = new testDurableListener("2");
Thread t2 = new Thread(lis2);
t2.start(); testDurableListener lis3 = new testDurableListener("3");
Thread t3 = new Thread(lis3);
t3.start(); testDurable durable = new testDurable();
durable.publishMessage();
} public void publishMessage(){
try{
ctx = getInitialContext();
tcf = (TopicConnectionFactory)ctx.lookup(this.strFactory);
tc = tcf.createTopicConnection();
session = tc.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
topic = (Topic)ctx.lookup(this.strTopic);
publisher = session.createPublisher(topic);
Message msg = session.createTextMessage("hhhhhhhhhhhhhhhhhhhhhhhhh");
msg.setStringProperty("name","john");
msg.setStringProperty("age","26");
publisher.publish(msg);
System.out.println("publish complete ");
tc.close();
}catch(Exception ex){
ex.printStackTrace();
}finally{
try{
ctx.close();
}catch(Exception exx){}
}
} public Context getInitialContext() throws NamingException {
try {
// Get an InitialContext
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new InitialContext(h);
}catch (NamingException ex) {
throw ex;
}
}}