【发布时间】:2016-05-08 07:31:04
【问题描述】:
我想为应用程序使用 n 层架构,因此客户端层、Web 层、业务层和数据层是分开的。我想知道具有消息的消息驱动 bean 如何在不更改架构的情况下将其保存到数据库中。 (即使用普通会话 bean,我检索通过 JSP 页面输入到 servlet 的数据,并从名为 bean 类的 servlet 中检索到,该 bean 类对数据库进行了操作,由于消息驱动 bean 已经有一个被覆盖的方法 onMessage)
到目前为止,我可以直接使用消息 bean 从 servlet 中检索值,但我想将其更改为 4 层架构,其中数据库操作不在 servlet 中。
我的 servlet 代码
@Resource(mappedName = "jms/dest")
private Queue dest;
@Resource(mappedName = "jms/queue")
private ConnectionFactory queue;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String str = request.getParameter("message");
try {
sendJMSMessageToDest(str);
} catch (JMSException ex) {
}
private Message createJMSMessageForjmsDest(Session session, Object messageData) throws JMSException{
TextMessage tm = session.createTextMessage();
tm.setText(messageData.toString());
return tm;
}
private void sendJMSMessageToDest(Object messageData) throws JMSException{
Connection connection = null;
Session session = null;
try {
connection = queue.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(dest);
messageProducer.send(createJMSMessageForjmsDest(session,messageData));
} catch (JMSException ex) {
}
}
【问题讨论】:
标签: database jakarta-ee message-driven-bean