Я пытаюсь написать простой клиент Ajax для отправки и получения сообщений.Он успешно развернут, но я никогда не получал сообщения от клиента.Я бью себя, чтобы придумать, чего мне не хватает, но все равно не могу заставить это работать.
Вот мой код:
- Я создал динамическое веб-приложение с именем ActiveMQAjaxService и поместил activemq-web.jar и все необходимые зависимости в папку WEB-INF / lib.Таким образом, AjaxServlet и MessageServlet будут развернуты
- Я запускаю сервер activemq в командной строке: ./activemq => activemq успешно создан и отображает:
Прослушивание соединенийпо адресу: tcp: // lilyubuntu: 61616ИНФО |Разъем openwire началсяИНФО |ActiveMQ JMS Message Broker (локальный хост, ID: lilyubuntu-56855-1272317001405-0: 0) запущенИНФО |Вход в org.slf4j.impl.JCLLoggerAdapter (org.mortbay.log) через org.mortbay.log.Slf4jLogИНФО |Причал-6.1.9ИНФО |ActiveMQ WebConsole инициализирован.ИНФО |Инициализация Spring FrameworkServlet «диспетчер»ИНФО |Консоль ActiveMQ на http://0.0.0.0:8161/admin
ИНФОРМАЦИЯ |Инициализация весеннего корня WebApplicationContextИНФО |Соединитель vm: // localhost запущенИНФО |Camel Console at http://0.0.0.0:8161/camel
ИНФОРМАЦИЯ |Веб-демонстрации ActiveMQ на http://0.0.0.0:8161/demo
ИНФОРМАЦИЯ |Приложение для доступа к файлам RESTful на http://0.0.0.0:8161/fileserver
INFO |Запущено SelectChannelConnector@0.0.0.0: 8161
3) index.xml, который является HTML-кодом для тестирования клиента:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="amq/amq.js"></script>
<script type="text/javascript">amq.uri='amq';</script>
<title>Hello Ajax ActiveMQ</title>
</head>
<body>
<p>Hello World!</p>
<script type="text/javascript">
amq.sendMessage("topic://myDetector", "message");
var myHandler =
{
rcvMessage: function(message)
{
alert("received "+message);
}
};
function myPoll(first)
{
if (first)
{
amq.addListener('myDetector', 'topic://myDetector', myHandler.rcvMessage);
}
}
amq.addPollHandler (myPoll);
4) Web.xml:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
->
<display-name>ActiveMQ Web Demos</display-name>
<description>
Apache ActiveMQ Web Demos
</description>
<!-- context config -->
<context-param>
<param-name>org.apache.activemq.brokerURL</param-name>
<param-value>vm://localhost</param-value> (I also tried tcp://localhost:61616)
<description>The URL of the Message Broker to connect to</description>
</context-param>
<context-param>
<param-name>org.apache.activemq.embeddedBroker</param-name>
<param-value>true</param-value>
<description>Whether we should include an embedded broker or not</description>
</context-param>
<!-- servlet mappings -->
<!-- the subscription REST servlet -->
<servlet>
<servlet-name>AjaxServlet</servlet-name>
<servlet-class>org.apache.activemq.web.AjaxServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>MessageServlet</servlet-name>
<servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<!--
Uncomment this parameter if you plan to use multiple consumers over REST
<init-param>
<param-name>destinationOptions</param-name>
<param-value>consumer.prefetchSize=1</param-value>
</init-param>
-->
</servlet>
<!-- the queue browse servlet -->
<filter>
<filter-name>session</filter-name>
<filter-class>org.apache.activemq.web.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>session</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
После всего этого я развертываю веб-приложение, и оноуспешно развернут, но когда я пробую его в http://localhost:8080/ActiveMQAjaxService/index.html, ничего не происходит.
Я могу успешно запустить демо-портфолиоPublisher по номеру http://localhost:8161/demo/portfolio/portfolio.html, и постоянно видеть обновленные цифры.Но для моего простого веб-приложения ничего не работает.
Любое предложение / подсказка приветствуется.Большое спасибо
Лили