2013-08-29 2 views
0

Я пытаюсь запустить ActiveMQ AjaxServlet со встроенным брокером внутри Weblogic. Я использую web.xml и Maven зависимости от примера, который находится здесь: https://svn.apache.org/repos/asf/activemq/trunk/activemq-web-demo/src/main/webapp/ После получения доступа к странице (или пытаются соединиться с клиентом), я получаю это исключение брошенного на сервере:ActiveMQ AjaxServlet не работает в Weblogic

Servlet failed with Exception 
java.lang.IllegalStateException: !(Jetty || Servlet 3.0 || ContinuationFilter) 
at org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:150) 
at org.apache.activemq.web.MessageListenerServlet.doMessages(MessageListenerServlet.java:309) 
at org.apache.activemq.web.MessageListenerServlet.doGet(MessageListenerServlet.java:246) 
at org.apache.activemq.web.AjaxServlet.doGet(AjaxServlet.java:47) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) 
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) 
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) 
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) 
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45) 
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) 
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) 
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) 
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) 
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) 
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) 
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) 
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 

Нужно ли добавлять Jetty в Weblogic? Это возможно? Это мудро?

Weblogic версия 10.3.6. Можно переключиться на Weblogic 12 решить эту проблему (он имеет Servlet 3.0)

Вот web.xml:

<!--ACTIVE MQ--> 
<context-param> 
    <param-name>org.apache.activemq.brokerURL</param-name> 
    <param-value>vm://localhost</param-value> 
</context-param> 
<context-param> 
    <param-name>org.apache.activemq.embeddedBroker</param-name> 
    <param-value>true</param-value> 
</context-param> 
<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> 
</servlet> 
<servlet> 
    <servlet-name>QueueBrowseServlet</servlet-name> 
    <servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>AjaxServlet</servlet-name> 
    <url-pattern>/amq/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>QueueBrowseServlet</servlet-name> 
    <url-pattern>/queueBrowse/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>MessageServlet</servlet-name> 
    <url-pattern>/message/*</url-pattern> 
</servlet-mapping> 

Вот зависимости ActiveMQ сервлета:

 <!--ActiveMQ--> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-web</artifactId> 
     <version>${version.activeMQ}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activeio-core</artifactId> 
     <version>3.1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-jaas</artifactId> 
     <version>${version.activeMQ}</version> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${version.slf4j}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-jaas</artifactId> 
     <version>${version.activeMQ}</version> 
     <optional>true</optional> 
    </dependency> 

ответ

0

Weblogic 10.X Безразлично» t поддерживает сервлет 3.0. Переключение на Weblogic 12 решило проблему.

Смежные вопросы