站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题Jbuilder8开发J2ee学习笔记(6)

Jbuilder8开发J2ee学习笔记(6)

摘要: BMP,SessionBean,JMS,Struts,Oracle,Jbuilder8,Weblogic

Jbuilder8开发J2ee学习笔记(6)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:缪青

开发JMS

1.建立JMS

首先建立JMS,由于需要调用SessionBean所以加入一个Field“sessHome”,注意类型一定是SessHome。对于JMS的一些参数都是我们在前面Weblogic6.1配置中所提前配置好的,忘了的话,回去看看。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

这样一个简单的点对点的JMS接收器就差不多了。

2.书写代码

public void onMessage(Message msg) {

try {

TextMessage TMS = (TextMessage) msg;

String a1 = TMS.getText();

String b1 = a1;

System.out.println("Message getted Is :" + a1 + ">>>>>>>>>>>OK");

Context context = getInitialContext();

Object ref = context.lookup("SessBean");

sessHome = (SessHome) PortableRemoteObject.narrow(ref, SessHome.class);

sessHome.create().insTableAa11(a1, b1);

//这是通过Session的insTableAa11调用EntityBean的ejbHomeEjbInsertAa11

//功能其是很简单,插入Aa11表一条记录(a1,a1)

}

catch (Exception ex) {

ex.printStackTrace();

}

}

代码很简单,几乎和SessionBean的测试端代码差不多,没什么问题吧。

3.发布JMS

和上一节讲的一样,使用ReDelpoy发布EJB上Weblogic6.1

4.开发测试程序

现在要开发JMS的发布端了,这里只要新建一个CLASS就可以了。

代码下面给出:

package userjmssesenbdb;

import java.util.*;

import javax.jms.*;

import javax.naming.*;

public class Client {

public final static String

JNDI_FACTORY = "weblogic.jndi.WLInitialContextFactory";

public final static String URL = "t3://127.0.0.1:7001";

private static final String QUEUE_CONNECTION_FACTORY =

"DemoJMSConnectionFactory";

private static final String QUEUE = "DemoJMSQueue";

private static InitialContext getInitialContext(String url) throws

NamingException {

Hashtable env = new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);

env.put(Context.PROVIDER_URL, url);

return new InitialContext(env);

}

public static void main(String[] args) throws Exception {

Context ctx = getInitialContext(URL);

QueueConnectionFactory qConnFact =

(QueueConnectionFactory) ctx.lookup(QUEUE_CONNECTION_FACTORY);

QueueConnection qConn = qConnFact.createQueueConnection();

QueueSession qSess = qConn.createQueueSession(false,

Session.AUTO_ACKNOWLEDGE);

Queue q = (Queue) ctx.lookup(QUEUE);

QueueSender qSend = qSess.createSender(q);

TextMessage txtMsg = qSess.createTextMessage("c");

System.out.println("Sending a message to queue");

qSend.send(txtMsg);

//---------------------------------------------------------//

txtMsg = qSess.createTextMessage("a");

System.out.println("Sending a message to queue");

qSend.send(txtMsg);

//---------------------------------------------------------//

qConn.close();

System.exit(0);

}

}

看懂了么,其实就是发送“c”,“a”到接收端。执行一下,是不是数据表aa11中又多了2条记录。



↑返回目录
前一篇: Jbuilder8开发J2ee学习笔记(7)
后一篇: Jbuilder8开发J2ee学习笔记(8)