0

嗨,我有以下代码:

page1.jsp 点击按钮时调用的ajax函数

function ajaxFunction()
{
var xmlHttp;
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4)
      {
alert("Data loaded");
      }
    }
  xmlHttp.open("GET","page2.jsp",true);
  xmlHttp.send(null);
}

page2.jsp

<%@ page import="javax.jms.*" %>

<%!
private QPublisher qPublisher = null;
public class QPublisher {

        private  TopicPublisher publisher = null;
        private  TopicSession   session   = null;
        public void configPublisher(){
               TopicConnectionFactory factory = null;
               TopicConnection connection = null;
                try {
                        factory = new com.tibco.tibjms.TibjmsTopicConnectionFactory("tcp");
                        connection = factory.createTopicConnection("user","pwd");
                session = connection.createTopicSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);
                javax.jms.Topic topic = session.createTopic("topic1");
                publisher = session.createPublisher(topic);
                } 
        }

        public void publish(String msg)
        {

                        javax.jms.TextMessage message = session.createTextMessage();
                        message.setText(msg);
                        publisher.publish(message);
            }
}
public void jspInit(){
        qPublisher = new QPublisher();
        qPublisher.configPublisher();
}
%>

<%
qPublisher.publish("This is a test for TT");
%>

如果我在不使用 ajax 的情况下调用 page2.jsp,即从 page1.jsp 使用

<form action="page2.jsp"> 

消息由订阅者选择并显示。

但不是通过制作ajax ..

我对ajax有基本的了解,所以请指导我缺少什么?

4

2 回答 2

0

您确定 Ajax 代码成功调用了 page2.jsp 吗?为了验证这一点,您可以简单地将 JMS 相关代码替换为更简单的代码,只需一个在客户端显示“Hello World”的 JSP 命令即可。

于 2009-04-01T15:54:59.307 回答
0

我知道这并不能真正回答您的问题,但如果您不太习惯使用严格的 JSP 和 JMS,您可能需要研究为您提供管道的框架。

例如,这是一个关于如何在 40 分钟内使用 Grails 构建 twitter的演示视频。该演示文稿由Graeme Rocher [twitter] - G2One 的 CTO,现在归 Spring Source 所有。在演示中,Graeme 创建了一个功能齐全、支持AJAX、可搜索、安全、基于JMS的 twitter 克隆。

我确信其他 Web 框架也有类似的示例。

就像有人曾经说过的那样——“不要重新发明轮子,除非你真的有兴趣学习很多关于轮子的低级细节”

于 2009-03-30T18:32:35.183 回答