QX项目实战-13.基础架构试验四:JavaWeb消息平台

实验一二三已经实现了对象消息的传递和数据库的重做。本实验测试在JavaWeb环境下对本地数据库进行修改,对修改过程进行封装、通过ActiveMQ传递以及在异构数据库上重做的过程。整个流程如图所示:


上述图中,本地数据库通过JavaWeb程序对数据库进行进行CURD操作,他的操作过程通过MQAPP序列化之后传递给ActiveMQ服务器,另一端访问JavaWeb程序,得到当前程序修改的信息,访问ActiveMQ服务器获得消息,同时通过CURD对异构数据库进行重做。整个平台的流程和实验二不同在于引入了ApacheTomcat服务器作为WEB服务器,来进行在线操作和调用消息接口。

新建一个Javaweb项目,导入需要的lib文件,导入之前开发的src源代码。新建JSP文件index.jsp作为修改和发送消息的页面。新建jsp页面receive.jsp作为消息接受和重做数据库的接口。Index.jsp代码引入了user类和view类用来对数据对象进行操作。这段代码显示了数据库中的所有信息,点击修改后可以对数据库进行修改,修改后的结果同步到数据库中同时发送消息到ActiveMQ服务器中。

<%@ page language="java" import="java.util.*"pageEncoding="ISO-8859-1"%>
<%@ page import="common.user"%>
<%@ page import="server.curd.bean.view"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">
<html>
         <head>
         </head>
         <body>
                   result:<br/>
                   <%
                   user u = newuser();
                   view v = newview();
                   out.println(v.viewAll());
                   String id =request.getParameter("id");
                   String name= request.getParameter("name");
                   Stringpassword = request.getParameter("password");
                   if (id !=null && (name == null || password == null)) {
                            u =v.viewOne(id);
                   } else if(name != null && password != null) {
                            u.update(id,name,password);
                            response.sendRedirect("index.jsp");
                   }
                   //out.println(u.toString());
         %>
                   <formaction="?action=update" method="GET">
                            <inputtype="text" name="id" value="<%=id%>" />
                            <inputtype="text" name="name"value="<%=u.getName()%>" />
                            <inputtype="text" name="password"value="<%=u.getPassword()%>" />
                            <inputtype="submit" />
                   </form>
         </body>
</html>

Receive.jsp页面引入消息接受类,接受所有的消息显示到界面上,由用户决定同步到本地那一条数据,或者全部同步。Receive.jsp代码如下:

<%@ page language="java" import="java.util.*"pageEncoding="ISO-8859-1"%>
<%@ page import="client.activemq.QueueReceive"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN">
<html>
         <head>
         </head>
         <body>
                   result:<br/>
                   <%
                   QueueReceiveqr = new QueueReceive();
                   out.println("messagecount:" + qr.receive()+"<br/>");
                   out.println(qr.viewMessage());
                   //out.println(qr.doAllReports());
                  
                   qr = null;
         %>
         </body>
</html>

通过Tomcat传递消息机制理论上是可行的,但是不知道为什么,消息传递出去后,tomcat服务器就死机了。可能是内存溢出或者和ActiveMQ的冲突。这个问题还没有解决,等下再研究下。

参考

1.      QX项目实战-9.ActiveMQ编程实例

2.      QX项目实战-10.基础架构实验一:传递消息、序列化对象和数据库封装

3.      QX项目实战-11.基础架构试验二:反序列化对象、重写数据库

4.      QX项目实战-12.基础架构试验三:异构数据库同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gongqingkui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值