You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Shahzad Bhatti <bh...@plexobject.com> on 2008/12/24 19:14:43 UTC

NPE for ${requestContext.brokerQuery.brokerAdmin.brokerName}

I am trying to setup embedded ActiveMQ inside Tomcat. It is largely based on
admin webapp included in the distribution. However, when the server starts
up, I see

type Exception report

message

description The server encountered an internal error () that prevented it
from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /index.jsp:39

36: <table>
37:     <tr>
38:         <td>Name</td>
39:         <td>${requestContext.brokerQuery.brokerAdmin.brokerName}</td>
40:     </tr>
41:     <tr>
42:         <td>ID</td>


Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)

org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)

com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

root cause

java.lang.NullPointerException

org.apache.activemq.web.filter.ApplicationContextFilter$2.get(ApplicationContextFilter.java:157)
	org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:218)
	org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)

org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)

org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)

org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)

org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)

com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)




My activemq.xml looks like
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd
  http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">


  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="false">

    <persistenceAdapter>
      <journaledJDBC journalLogFiles="5" dataDirectory="../data"/>
    </persistenceAdapter>

    <transportConnectors>
      <transportConnector uri="tcp://localhost:61616"/>
      <transportConnector uri="stomp://localhost:61613"/>
    </transportConnectors>

  </broker>

</beans>



And web.xml looks like
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

  <description> Apache ActiveMQ Web Console </description>
  <display-name>ActiveMQ Console</display-name>

    <!-- context config -->
    <context-param>
        <param-name>org.apache.activemq.brokerURL</param-name>
    <param-value>/WEB-INF/activemq.xml</param-value>
        <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>


  <listener>
   
<listener-class>org.apache.activemq.web.SpringBrokerContextListener</listener-class>
  </listener>

  <filter>
    <filter-name>sitemesh</filter-name>
   
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>sitemesh</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
  <!--              Expose Spring POJOs to JSP                            
-->
  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
  <filter>
    <filter-name>spring</filter-name>
   
<filter-class>org.apache.activemq.web.filter.ApplicationContextFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>spring</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


  <!-- 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-mapping>
    <servlet-name>AjaxServlet</servlet-name>
    <url-pattern>/ajax/*</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>SendServlet</servlet-name>
    <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>SendServlet</servlet-name>
    <url-pattern>/send/*</url-pattern>
  </servlet-mapping>

  <!-- the queue browse servlet -->
  <servlet>
    <servlet-name>QueueBrowseServlet</servlet-name>
   
<servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>QueueBrowseServlet</servlet-name>
    <url-pattern>/queueBrowse/*</url-pattern>
  </servlet-mapping>

  <!-- track the session usage for web JMS clients -->
  <filter>
    <filter-name>session</filter-name>
    <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
  </filter>

  <filter>
    <filter-name>spring-rq</filter-name>
   
<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>session</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>spring-rq</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
   
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
    </jsp-property-group>
  </jsp-config>
</web-app>



How do I specify admin URL. Any idea how to fix this error? Thanks.


-- 
View this message in context: http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21156924.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: NPE for ${requestContext.brokerQuery.brokerAdmin.brokerName}

Posted by Dejan Bosanac <de...@nighttale.net>.
Hi,
you have to enable JMX for your broker in order to have properly working web
console.

Cheers
--
Dejan Bosanac

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Tue, Jan 6, 2009 at 1:12 AM, Shahzad Bhatti <bh...@plexobject.com>wrote:

>
> I made some progress and I can see the first page index.jsp shows up
> properly, but when I try to add queue it fails, here is my
> webapps/admin/WEB-INF/webconsole-embedded.xml
>
>
>
>
> <beans>
>
>  <bean id="placeholderConfig"
>
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>        <property name="locations">
>                <value>credentials.properties</value>
> <!--
>
> <value>file:///${activemq.base}/conf/credentials.properties</value>
> -->
>        </property>
>  </bean>
>
>  <bean id="brokerQuery"
> class="org.apache.activemq.web.SingletonBrokerFacade"
> autowire='constructor'
> singleton="false"/>
>
>
>  <bean id="sessionPool" class="org.apache.activemq.web.SessionPool">
>        <property name="connectionFactory" ref="connectionFactory"/>
>  </bean>
>
>  <bean id="connectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>    <property name="brokerURL" value="vm://localhost"/>
>    <property name="userName" value="${activemq.username}"/>
>    <property name="password" value="${activemq.password}"/>
>  </bean>
>
>  <bean id="queueBrowser" class="org.apache.activemq.web.QueueBrowseQuery"
> autowire='constructor' singleton="false"/>
>  <bean id="messageQuery" class="org.apache.activemq.web.MessageQuery"
> autowire='constructor' singleton="false"/>
>
> </beans>
>
>
>
>
> When I try to create queue or topic, I get
> HTTP Status 500 -
>
> type Exception report
>
> message
>
> description The server encountered an internal error () that prevented it
> from fulfilling this request.
>
> exception
>
> org.springframework.web.util.NestedServletException: Request processing
> failed; nested exception is java.lang.IllegalArgumentException: No
> brokerAdmin on the injected brokerFacade:
> org.apache.activemq.web.SingletonBrokerFacade@8c858a
>
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
>
>
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>
>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>
>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>
> root cause
>
> java.lang.IllegalArgumentException: No brokerAdmin on the injected
> brokerFacade: org.apache.activemq.web.SingletonBrokerFacade@8c858a
>
>
> org.apache.activemq.web.DestinationFacade.getBrokerAdmin(DestinationFacade.java:70)
>
>
> org.apache.activemq.web.DestinationFacade.addDestination(DestinationFacade.java:56)
>
>
> org.apache.activemq.web.controller.CreateDestination.handleRequest(CreateDestination.java:38)
>
>
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>
>
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
>
>
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
>
>
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
>
>
> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>
>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>
>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>
> note The full stack trace of the root cause is available in the Apache
> Tomcat/5.5.27 logs.
> Apache Tomcat/5.5.27
>
>
>
>
> How do I specify brokerAdmin?
>
>
>
> Shahzad Bhatti wrote:
> >
> > Sorry, for the late reply but I have both of those files in WEB-INF and
> as
> > I mentioned I copied all files from admin's WEB-INF except activemq.xml,
> > which I simplified with minimum configuration. Any other ideas? Thanks.
> >
> >
> >
> >
> > Dejan Bosanac wrote:
> >>
> >> Hi,
> >>
> >> as far as I can see from your configuration, you're missing
> >> dispatcher-servlet.xml and webconsole-embedded.xml for starters. Take a
> >> look
> >> at webapps/admin/WEB-INF/ folder of the ActiveMQ distribution for
> >> examples.
> >>
> >> Cheers
> >> --
> >> Dejan Bosanac
> >>
> >> Open Source Integration - http://fusesource.com/
> >> ActiveMQ in Action - http://www.manning.com/snyder/
> >> Blog - http://www.nighttale.net
> >>
> >>
> >> On Wed, Dec 24, 2008 at 7:14 PM, Shahzad Bhatti
> >> <bh...@plexobject.com>wrote:
> >>
> >>>
> >>> I am trying to setup embedded ActiveMQ inside Tomcat. It is largely
> >>> based
> >>> on
> >>> admin webapp included in the distribution. However, when the server
> >>> starts
> >>> up, I see
> >>>
> >>> type Exception report
> >>>
> >>> message
> >>>
> >>> description The server encountered an internal error () that prevented
> >>> it
> >>> from fulfilling this request.
> >>>
> >>> exception
> >>>
> >>> org.apache.jasper.JasperException: Exception in JSP: /index.jsp:39
> >>>
> >>> 36: <table>
> >>> 37:     <tr>
> >>> 38:         <td>Name</td>
> >>> 39:
> >>> <td>${requestContext.brokerQuery.brokerAdmin.brokerName}</td>
> >>> 40:     </tr>
> >>> 41:     <tr>
> >>> 42:         <td>ID</td>
> >>>
> >>>
> >>> Stacktrace:
> >>>
> >>>
> >>>
> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
> >>>
> >>>
> >>>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
> >>>
> >>>
> >>>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
> >>>
>  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
> >>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >>>
> >>>
> >>>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> >>>
> >>>
> >>>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>>
> >>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
> >>>
> >>>
> >>>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> >>>
> >>>
> >>>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> >>>
> >>>
> >>>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> >>>
> >>> root cause
> >>>
> >>> java.lang.NullPointerException
> >>>
> >>>
> >>>
> org.apache.activemq.web.filter.ApplicationContextFilter$2.get(ApplicationContextFilter.java:157)
> >>>        org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:218)
> >>>
> >>> org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
> >>>
> >>>
> >>>
> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
> >>>
> >>>
> >>>
> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
> >>>
> >>>
> >>>
> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924)
> >>>        org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
> >>>
> >>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
> >>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >>>
> >>>
> >>>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
> >>>
> >>>
> >>>
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
> >>>
>  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
> >>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> >>>
> >>>
> >>>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
> >>>
> >>>
> >>>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>>
> >>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
> >>>
> >>>
> >>>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
> >>>
> >>>
> >>>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
> >>>
> >>>
> >>>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
> >>>
> >>>
> >>>
> >>>
> >>> My activemq.xml looks like
> >>> <beans
> >>>  xmlns="http://www.springframework.org/schema/beans"
> >>>  xmlns:amq="http://activemq.apache.org/schema/core"
> >>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>  xsi:schemaLocation="http://www.springframework.org/schema/beans
> >>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> >>>  http://activemq.apache.org/schema/core
> >>> http://activemq.apache.org/schema/core/activemq-core.xsd
> >>>  http://activemq.apache.org/camel/schema/spring
> >>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
> >>>
> >>>
> >>>  <broker xmlns="http://activemq.apache.org/schema/core"
> useJmx="false">
> >>>
> >>>    <persistenceAdapter>
> >>>      <journaledJDBC journalLogFiles="5" dataDirectory="../data"/>
> >>>    </persistenceAdapter>
> >>>
> >>>    <transportConnectors>
> >>>      <transportConnector uri="tcp://localhost:61616"/>
> >>>      <transportConnector uri="stomp://localhost:61613"/>
> >>>    </transportConnectors>
> >>>
> >>>  </broker>
> >>>
> >>> </beans>
> >>>
> >>>
> >>>
> >>> And web.xml looks like
> >>> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> >>>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> >>>         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
> >>>         version="2.4">
> >>>
> >>>  <description> Apache ActiveMQ Web Console </description>
> >>>  <display-name>ActiveMQ Console</display-name>
> >>>
> >>>    <!-- context config -->
> >>>    <context-param>
> >>>        <param-name>org.apache.activemq.brokerURL</param-name>
> >>>    <param-value>/WEB-INF/activemq.xml</param-value>
> >>>        <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>
> >>>
> >>>
> >>>  <listener>
> >>>
> >>>
> >>>
> <listener-class>org.apache.activemq.web.SpringBrokerContextListener</listener-class>
> >>>  </listener>
> >>>
> >>>  <filter>
> >>>    <filter-name>sitemesh</filter-name>
> >>>
> >>>
> >>>
> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
> >>>  </filter>
> >>>
> >>>  <filter-mapping>
> >>>    <filter-name>sitemesh</filter-name>
> >>>    <url-pattern>/*</url-pattern>
> >>>  </filter-mapping>
> >>>
> >>>  <!--
> >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>> -->
> >>>  <!--              Expose Spring POJOs to JSP
> >>> -->
> >>>  <!--
> >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>> -->
> >>>  <filter>
> >>>    <filter-name>spring</filter-name>
> >>>
> >>>
> >>>
> <filter-class>org.apache.activemq.web.filter.ApplicationContextFilter</filter-class>
> >>>  </filter>
> >>>
> >>>  <filter-mapping>
> >>>    <filter-name>spring</filter-name>
> >>>    <url-pattern>/*</url-pattern>
> >>>  </filter-mapping>
> >>>
> >>>
> >>>  <!-- 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-mapping>
> >>>    <servlet-name>AjaxServlet</servlet-name>
> >>>    <url-pattern>/ajax/*</url-pattern>
> >>>  </servlet-mapping>
> >>>
> >>>  <servlet>
> >>>    <servlet-name>SendServlet</servlet-name>
> >>>
>  <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
> >>>    <load-on-startup>1</load-on-startup>
> >>>  </servlet>
> >>>  <servlet-mapping>
> >>>    <servlet-name>SendServlet</servlet-name>
> >>>    <url-pattern>/send/*</url-pattern>
> >>>  </servlet-mapping>
> >>>
> >>>  <!-- the queue browse servlet -->
> >>>  <servlet>
> >>>    <servlet-name>QueueBrowseServlet</servlet-name>
> >>>
> >>>
> <servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class>
> >>>  </servlet>
> >>>  <servlet-mapping>
> >>>    <servlet-name>QueueBrowseServlet</servlet-name>
> >>>    <url-pattern>/queueBrowse/*</url-pattern>
> >>>  </servlet-mapping>
> >>>
> >>>  <!-- track the session usage for web JMS clients -->
> >>>  <filter>
> >>>    <filter-name>session</filter-name>
> >>>    <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
> >>>  </filter>
> >>>
> >>>  <filter>
> >>>    <filter-name>spring-rq</filter-name>
> >>>
> >>>
> >>>
> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
> >>>  </filter>
> >>>
> >>>  <filter-mapping>
> >>>    <filter-name>session</filter-name>
> >>>    <url-pattern>/*</url-pattern>
> >>>  </filter-mapping>
> >>>  <filter-mapping>
> >>>    <filter-name>spring-rq</filter-name>
> >>>    <url-pattern>/*</url-pattern>
> >>>  </filter-mapping>
> >>>
> >>>  <servlet>
> >>>    <servlet-name>dispatcher</servlet-name>
> >>>
> >>>
> >>>
> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
> >>>    <load-on-startup>2</load-on-startup>
> >>>  </servlet>
> >>>
> >>>  <servlet-mapping>
> >>>    <servlet-name>dispatcher</servlet-name>
> >>>    <url-pattern>*.action</url-pattern>
> >>>  </servlet-mapping>
> >>>
> >>>  <welcome-file-list>
> >>>    <welcome-file>index.html</welcome-file>
> >>>    <welcome-file>index.jsp</welcome-file>
> >>>  </welcome-file-list>
> >>>
> >>>  <jsp-config>
> >>>    <jsp-property-group>
> >>>      <url-pattern>*.jsp</url-pattern>
> >>>      <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
> >>>    </jsp-property-group>
> >>>  </jsp-config>
> >>> </web-app>
> >>>
> >>>
> >>>
> >>> How do I specify admin URL. Any idea how to fix this error? Thanks.
> >>>
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21156924.html
> >>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> >>>
> >>>
> >>
> >>
> >> -----
> >> Dejan Bosanac
> >>
> >>
> >> http://www.ttmsolutions.com - get a free ActiveMQ user guide
> >>
> >> ActiveMQ in Action - http://www.manning.com/snyder/
> >> Scripting in Java - http://www.scriptinginjava.net
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21301556.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>

Re: NPE for ${requestContext.brokerQuery.brokerAdmin.brokerName}

Posted by Shahzad Bhatti <bh...@plexobject.com>.
I made some progress and I can see the first page index.jsp shows up
properly, but when I try to add queue it fails, here is my
webapps/admin/WEB-INF/webconsole-embedded.xml




<beans>

  <bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
                <value>credentials.properties</value>
<!--
               
<value>file:///${activemq.base}/conf/credentials.properties</value>
-->
        </property>
  </bean>

  <bean id="brokerQuery"
class="org.apache.activemq.web.SingletonBrokerFacade" autowire='constructor'
singleton="false"/>


  <bean id="sessionPool" class="org.apache.activemq.web.SessionPool">
        <property name="connectionFactory" ref="connectionFactory"/>
  </bean>

  <bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="vm://localhost"/>
    <property name="userName" value="${activemq.username}"/>
    <property name="password" value="${activemq.password}"/>
  </bean>

  <bean id="queueBrowser" class="org.apache.activemq.web.QueueBrowseQuery"
autowire='constructor' singleton="false"/>
  <bean id="messageQuery" class="org.apache.activemq.web.MessageQuery"
autowire='constructor' singleton="false"/>

</beans>




When I try to create queue or topic, I get 
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it
from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing
failed; nested exception is java.lang.IllegalArgumentException: No
brokerAdmin on the injected brokerFacade:
org.apache.activemq.web.SingletonBrokerFacade@8c858a

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)

org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)

org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)

com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

root cause

java.lang.IllegalArgumentException: No brokerAdmin on the injected
brokerFacade: org.apache.activemq.web.SingletonBrokerFacade@8c858a

org.apache.activemq.web.DestinationFacade.getBrokerAdmin(DestinationFacade.java:70)

org.apache.activemq.web.DestinationFacade.addDestination(DestinationFacade.java:56)

org.apache.activemq.web.controller.CreateDestination.handleRequest(CreateDestination.java:38)

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)

org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)

org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)

org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)

org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)

org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)

com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)

com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)

note The full stack trace of the root cause is available in the Apache
Tomcat/5.5.27 logs.
Apache Tomcat/5.5.27




How do I specify brokerAdmin?



Shahzad Bhatti wrote:
> 
> Sorry, for the late reply but I have both of those files in WEB-INF and as
> I mentioned I copied all files from admin's WEB-INF except activemq.xml,
> which I simplified with minimum configuration. Any other ideas? Thanks.
> 
> 
> 
> 
> Dejan Bosanac wrote:
>> 
>> Hi,
>> 
>> as far as I can see from your configuration, you're missing
>> dispatcher-servlet.xml and webconsole-embedded.xml for starters. Take a
>> look
>> at webapps/admin/WEB-INF/ folder of the ActiveMQ distribution for
>> examples.
>> 
>> Cheers
>> --
>> Dejan Bosanac
>> 
>> Open Source Integration - http://fusesource.com/
>> ActiveMQ in Action - http://www.manning.com/snyder/
>> Blog - http://www.nighttale.net
>> 
>> 
>> On Wed, Dec 24, 2008 at 7:14 PM, Shahzad Bhatti
>> <bh...@plexobject.com>wrote:
>> 
>>>
>>> I am trying to setup embedded ActiveMQ inside Tomcat. It is largely
>>> based
>>> on
>>> admin webapp included in the distribution. However, when the server
>>> starts
>>> up, I see
>>>
>>> type Exception report
>>>
>>> message
>>>
>>> description The server encountered an internal error () that prevented
>>> it
>>> from fulfilling this request.
>>>
>>> exception
>>>
>>> org.apache.jasper.JasperException: Exception in JSP: /index.jsp:39
>>>
>>> 36: <table>
>>> 37:     <tr>
>>> 38:         <td>Name</td>
>>> 39:        
>>> <td>${requestContext.brokerQuery.brokerAdmin.brokerName}</td>
>>> 40:     </tr>
>>> 41:     <tr>
>>> 42:         <td>ID</td>
>>>
>>>
>>> Stacktrace:
>>>
>>>
>>> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
>>>
>>>
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
>>>
>>> 
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>>>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>
>>>
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>>>
>>>
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>
>>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>>>
>>>
>>> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>>>
>>>
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>>>
>>>
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>>>
>>> root cause
>>>
>>> java.lang.NullPointerException
>>>
>>>
>>> org.apache.activemq.web.filter.ApplicationContextFilter$2.get(ApplicationContextFilter.java:157)
>>>        org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:218)
>>>       
>>> org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
>>>
>>>
>>> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
>>>
>>>
>>> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
>>>
>>>
>>> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924)
>>>        org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
>>>       
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>
>>>
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
>>>
>>> 
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>>>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>>
>>>
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>>>
>>>
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>
>>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>>>
>>>
>>> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>>>
>>>
>>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>>>
>>>
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>>>
>>>
>>>
>>>
>>> My activemq.xml looks like
>>> <beans
>>>  xmlns="http://www.springframework.org/schema/beans"
>>>  xmlns:amq="http://activemq.apache.org/schema/core"
>>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>  xsi:schemaLocation="http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>>  http://activemq.apache.org/schema/core
>>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>>  http://activemq.apache.org/camel/schema/spring
>>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>>>
>>>
>>>  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="false">
>>>
>>>    <persistenceAdapter>
>>>      <journaledJDBC journalLogFiles="5" dataDirectory="../data"/>
>>>    </persistenceAdapter>
>>>
>>>    <transportConnectors>
>>>      <transportConnector uri="tcp://localhost:61616"/>
>>>      <transportConnector uri="stomp://localhost:61613"/>
>>>    </transportConnectors>
>>>
>>>  </broker>
>>>
>>> </beans>
>>>
>>>
>>>
>>> And web.xml looks like
>>> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>>>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>>>         version="2.4">
>>>
>>>  <description> Apache ActiveMQ Web Console </description>
>>>  <display-name>ActiveMQ Console</display-name>
>>>
>>>    <!-- context config -->
>>>    <context-param>
>>>        <param-name>org.apache.activemq.brokerURL</param-name>
>>>    <param-value>/WEB-INF/activemq.xml</param-value>
>>>        <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>
>>>
>>>
>>>  <listener>
>>>
>>>
>>> <listener-class>org.apache.activemq.web.SpringBrokerContextListener</listener-class>
>>>  </listener>
>>>
>>>  <filter>
>>>    <filter-name>sitemesh</filter-name>
>>>
>>>
>>> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
>>>  </filter>
>>>
>>>  <filter-mapping>
>>>    <filter-name>sitemesh</filter-name>
>>>    <url-pattern>/*</url-pattern>
>>>  </filter-mapping>
>>>
>>>  <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> -->
>>>  <!--              Expose Spring POJOs to JSP
>>> -->
>>>  <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> -->
>>>  <filter>
>>>    <filter-name>spring</filter-name>
>>>
>>>
>>> <filter-class>org.apache.activemq.web.filter.ApplicationContextFilter</filter-class>
>>>  </filter>
>>>
>>>  <filter-mapping>
>>>    <filter-name>spring</filter-name>
>>>    <url-pattern>/*</url-pattern>
>>>  </filter-mapping>
>>>
>>>
>>>  <!-- 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-mapping>
>>>    <servlet-name>AjaxServlet</servlet-name>
>>>    <url-pattern>/ajax/*</url-pattern>
>>>  </servlet-mapping>
>>>
>>>  <servlet>
>>>    <servlet-name>SendServlet</servlet-name>
>>>    <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
>>>    <load-on-startup>1</load-on-startup>
>>>  </servlet>
>>>  <servlet-mapping>
>>>    <servlet-name>SendServlet</servlet-name>
>>>    <url-pattern>/send/*</url-pattern>
>>>  </servlet-mapping>
>>>
>>>  <!-- the queue browse servlet -->
>>>  <servlet>
>>>    <servlet-name>QueueBrowseServlet</servlet-name>
>>>
>>> <servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class>
>>>  </servlet>
>>>  <servlet-mapping>
>>>    <servlet-name>QueueBrowseServlet</servlet-name>
>>>    <url-pattern>/queueBrowse/*</url-pattern>
>>>  </servlet-mapping>
>>>
>>>  <!-- track the session usage for web JMS clients -->
>>>  <filter>
>>>    <filter-name>session</filter-name>
>>>    <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
>>>  </filter>
>>>
>>>  <filter>
>>>    <filter-name>spring-rq</filter-name>
>>>
>>>
>>> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
>>>  </filter>
>>>
>>>  <filter-mapping>
>>>    <filter-name>session</filter-name>
>>>    <url-pattern>/*</url-pattern>
>>>  </filter-mapping>
>>>  <filter-mapping>
>>>    <filter-name>spring-rq</filter-name>
>>>    <url-pattern>/*</url-pattern>
>>>  </filter-mapping>
>>>
>>>  <servlet>
>>>    <servlet-name>dispatcher</servlet-name>
>>>
>>>
>>> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
>>>    <load-on-startup>2</load-on-startup>
>>>  </servlet>
>>>
>>>  <servlet-mapping>
>>>    <servlet-name>dispatcher</servlet-name>
>>>    <url-pattern>*.action</url-pattern>
>>>  </servlet-mapping>
>>>
>>>  <welcome-file-list>
>>>    <welcome-file>index.html</welcome-file>
>>>    <welcome-file>index.jsp</welcome-file>
>>>  </welcome-file-list>
>>>
>>>  <jsp-config>
>>>    <jsp-property-group>
>>>      <url-pattern>*.jsp</url-pattern>
>>>      <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
>>>    </jsp-property-group>
>>>  </jsp-config>
>>> </web-app>
>>>
>>>
>>>
>>> How do I specify admin URL. Any idea how to fix this error? Thanks.
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21156924.html
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
>> -----
>> Dejan Bosanac
>> 
>> 
>> http://www.ttmsolutions.com - get a free ActiveMQ user guide
>> 
>> ActiveMQ in Action - http://www.manning.com/snyder/
>> Scripting in Java - http://www.scriptinginjava.net
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21301556.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: NPE for ${requestContext.brokerQuery.brokerAdmin.brokerName}

Posted by Shahzad Bhatti <bh...@plexobject.com>.
Sorry, for the late reply but I have both of those files in WEB-INF and as I
mentioned I copied all files from admin's WEB-INF except activemq.xml, which
I simplified with minimum configuration. Any other ideas? Thanks.




Dejan Bosanac wrote:
> 
> Hi,
> 
> as far as I can see from your configuration, you're missing
> dispatcher-servlet.xml and webconsole-embedded.xml for starters. Take a
> look
> at webapps/admin/WEB-INF/ folder of the ActiveMQ distribution for
> examples.
> 
> Cheers
> --
> Dejan Bosanac
> 
> Open Source Integration - http://fusesource.com/
> ActiveMQ in Action - http://www.manning.com/snyder/
> Blog - http://www.nighttale.net
> 
> 
> On Wed, Dec 24, 2008 at 7:14 PM, Shahzad Bhatti
> <bh...@plexobject.com>wrote:
> 
>>
>> I am trying to setup embedded ActiveMQ inside Tomcat. It is largely based
>> on
>> admin webapp included in the distribution. However, when the server
>> starts
>> up, I see
>>
>> type Exception report
>>
>> message
>>
>> description The server encountered an internal error () that prevented it
>> from fulfilling this request.
>>
>> exception
>>
>> org.apache.jasper.JasperException: Exception in JSP: /index.jsp:39
>>
>> 36: <table>
>> 37:     <tr>
>> 38:         <td>Name</td>
>> 39:         <td>${requestContext.brokerQuery.brokerAdmin.brokerName}</td>
>> 40:     </tr>
>> 41:     <tr>
>> 42:         <td>ID</td>
>>
>>
>> Stacktrace:
>>
>>
>> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
>>
>>
>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
>>
>>  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>
>>
>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>>
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>
>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>>
>>
>> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>>
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>>
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>>
>> root cause
>>
>> java.lang.NullPointerException
>>
>>
>> org.apache.activemq.web.filter.ApplicationContextFilter$2.get(ApplicationContextFilter.java:157)
>>        org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:218)
>>        org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
>>
>>
>> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
>>
>>
>> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
>>
>>
>> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924)
>>        org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
>>        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>
>>
>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
>>
>>  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>
>>
>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>>
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>
>>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>>
>>
>> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>>
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>>
>>
>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>>
>>
>>
>>
>> My activemq.xml looks like
>> <beans
>>  xmlns="http://www.springframework.org/schema/beans"
>>  xmlns:amq="http://activemq.apache.org/schema/core"
>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>  xsi:schemaLocation="http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>  http://activemq.apache.org/schema/core
>> http://activemq.apache.org/schema/core/activemq-core.xsd
>>  http://activemq.apache.org/camel/schema/spring
>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>>
>>
>>  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="false">
>>
>>    <persistenceAdapter>
>>      <journaledJDBC journalLogFiles="5" dataDirectory="../data"/>
>>    </persistenceAdapter>
>>
>>    <transportConnectors>
>>      <transportConnector uri="tcp://localhost:61616"/>
>>      <transportConnector uri="stomp://localhost:61613"/>
>>    </transportConnectors>
>>
>>  </broker>
>>
>> </beans>
>>
>>
>>
>> And web.xml looks like
>> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>>         version="2.4">
>>
>>  <description> Apache ActiveMQ Web Console </description>
>>  <display-name>ActiveMQ Console</display-name>
>>
>>    <!-- context config -->
>>    <context-param>
>>        <param-name>org.apache.activemq.brokerURL</param-name>
>>    <param-value>/WEB-INF/activemq.xml</param-value>
>>        <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>
>>
>>
>>  <listener>
>>
>>
>> <listener-class>org.apache.activemq.web.SpringBrokerContextListener</listener-class>
>>  </listener>
>>
>>  <filter>
>>    <filter-name>sitemesh</filter-name>
>>
>>
>> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
>>  </filter>
>>
>>  <filter-mapping>
>>    <filter-name>sitemesh</filter-name>
>>    <url-pattern>/*</url-pattern>
>>  </filter-mapping>
>>
>>  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>  <!--              Expose Spring POJOs to JSP
>> -->
>>  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>  <filter>
>>    <filter-name>spring</filter-name>
>>
>>
>> <filter-class>org.apache.activemq.web.filter.ApplicationContextFilter</filter-class>
>>  </filter>
>>
>>  <filter-mapping>
>>    <filter-name>spring</filter-name>
>>    <url-pattern>/*</url-pattern>
>>  </filter-mapping>
>>
>>
>>  <!-- 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-mapping>
>>    <servlet-name>AjaxServlet</servlet-name>
>>    <url-pattern>/ajax/*</url-pattern>
>>  </servlet-mapping>
>>
>>  <servlet>
>>    <servlet-name>SendServlet</servlet-name>
>>    <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
>>    <load-on-startup>1</load-on-startup>
>>  </servlet>
>>  <servlet-mapping>
>>    <servlet-name>SendServlet</servlet-name>
>>    <url-pattern>/send/*</url-pattern>
>>  </servlet-mapping>
>>
>>  <!-- the queue browse servlet -->
>>  <servlet>
>>    <servlet-name>QueueBrowseServlet</servlet-name>
>>
>> <servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class>
>>  </servlet>
>>  <servlet-mapping>
>>    <servlet-name>QueueBrowseServlet</servlet-name>
>>    <url-pattern>/queueBrowse/*</url-pattern>
>>  </servlet-mapping>
>>
>>  <!-- track the session usage for web JMS clients -->
>>  <filter>
>>    <filter-name>session</filter-name>
>>    <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
>>  </filter>
>>
>>  <filter>
>>    <filter-name>spring-rq</filter-name>
>>
>>
>> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
>>  </filter>
>>
>>  <filter-mapping>
>>    <filter-name>session</filter-name>
>>    <url-pattern>/*</url-pattern>
>>  </filter-mapping>
>>  <filter-mapping>
>>    <filter-name>spring-rq</filter-name>
>>    <url-pattern>/*</url-pattern>
>>  </filter-mapping>
>>
>>  <servlet>
>>    <servlet-name>dispatcher</servlet-name>
>>
>>
>> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
>>    <load-on-startup>2</load-on-startup>
>>  </servlet>
>>
>>  <servlet-mapping>
>>    <servlet-name>dispatcher</servlet-name>
>>    <url-pattern>*.action</url-pattern>
>>  </servlet-mapping>
>>
>>  <welcome-file-list>
>>    <welcome-file>index.html</welcome-file>
>>    <welcome-file>index.jsp</welcome-file>
>>  </welcome-file-list>
>>
>>  <jsp-config>
>>    <jsp-property-group>
>>      <url-pattern>*.jsp</url-pattern>
>>      <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
>>    </jsp-property-group>
>>  </jsp-config>
>> </web-app>
>>
>>
>>
>> How do I specify admin URL. Any idea how to fix this error? Thanks.
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21156924.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> Dejan Bosanac
> 
> 
> http://www.ttmsolutions.com - get a free ActiveMQ user guide
> 
> ActiveMQ in Action - http://www.manning.com/snyder/
> Scripting in Java - http://www.scriptinginjava.net
> 

-- 
View this message in context: http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21298924.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: NPE for ${requestContext.brokerQuery.brokerAdmin.brokerName}

Posted by Dejan Bosanac <de...@nighttale.net>.
Hi,

as far as I can see from your configuration, you're missing
dispatcher-servlet.xml and webconsole-embedded.xml for starters. Take a look
at webapps/admin/WEB-INF/ folder of the ActiveMQ distribution for examples.

Cheers
--
Dejan Bosanac

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Wed, Dec 24, 2008 at 7:14 PM, Shahzad Bhatti <bh...@plexobject.com>wrote:

>
> I am trying to setup embedded ActiveMQ inside Tomcat. It is largely based
> on
> admin webapp included in the distribution. However, when the server starts
> up, I see
>
> type Exception report
>
> message
>
> description The server encountered an internal error () that prevented it
> from fulfilling this request.
>
> exception
>
> org.apache.jasper.JasperException: Exception in JSP: /index.jsp:39
>
> 36: <table>
> 37:     <tr>
> 38:         <td>Name</td>
> 39:         <td>${requestContext.brokerQuery.brokerAdmin.brokerName}</td>
> 40:     </tr>
> 41:     <tr>
> 42:         <td>ID</td>
>
>
> Stacktrace:
>
>
> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
>
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
>
>  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>
>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>
> root cause
>
> java.lang.NullPointerException
>
>
> org.apache.activemq.web.filter.ApplicationContextFilter$2.get(ApplicationContextFilter.java:157)
>        org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:218)
>        org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
>
>
> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
>
>
> org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
>
>
> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:924)
>        org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
>        org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
>
>  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
>        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>        javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>
>
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>
>  org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:43)
>
>
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:81)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
>
>
> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
>
>
>
>
> My activemq.xml looks like
> <beans
>  xmlns="http://www.springframework.org/schema/beans"
>  xmlns:amq="http://activemq.apache.org/schema/core"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>  http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd
>  http://activemq.apache.org/camel/schema/spring
> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>
>
>  <broker xmlns="http://activemq.apache.org/schema/core" useJmx="false">
>
>    <persistenceAdapter>
>      <journaledJDBC journalLogFiles="5" dataDirectory="../data"/>
>    </persistenceAdapter>
>
>    <transportConnectors>
>      <transportConnector uri="tcp://localhost:61616"/>
>      <transportConnector uri="stomp://localhost:61613"/>
>    </transportConnectors>
>
>  </broker>
>
> </beans>
>
>
>
> And web.xml looks like
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>         version="2.4">
>
>  <description> Apache ActiveMQ Web Console </description>
>  <display-name>ActiveMQ Console</display-name>
>
>    <!-- context config -->
>    <context-param>
>        <param-name>org.apache.activemq.brokerURL</param-name>
>    <param-value>/WEB-INF/activemq.xml</param-value>
>        <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>
>
>
>  <listener>
>
>
> <listener-class>org.apache.activemq.web.SpringBrokerContextListener</listener-class>
>  </listener>
>
>  <filter>
>    <filter-name>sitemesh</filter-name>
>
>
> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
>  </filter>
>
>  <filter-mapping>
>    <filter-name>sitemesh</filter-name>
>    <url-pattern>/*</url-pattern>
>  </filter-mapping>
>
>  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>  <!--              Expose Spring POJOs to JSP
> -->
>  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>  <filter>
>    <filter-name>spring</filter-name>
>
>
> <filter-class>org.apache.activemq.web.filter.ApplicationContextFilter</filter-class>
>  </filter>
>
>  <filter-mapping>
>    <filter-name>spring</filter-name>
>    <url-pattern>/*</url-pattern>
>  </filter-mapping>
>
>
>  <!-- 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-mapping>
>    <servlet-name>AjaxServlet</servlet-name>
>    <url-pattern>/ajax/*</url-pattern>
>  </servlet-mapping>
>
>  <servlet>
>    <servlet-name>SendServlet</servlet-name>
>    <servlet-class>org.apache.activemq.web.MessageServlet</servlet-class>
>    <load-on-startup>1</load-on-startup>
>  </servlet>
>  <servlet-mapping>
>    <servlet-name>SendServlet</servlet-name>
>    <url-pattern>/send/*</url-pattern>
>  </servlet-mapping>
>
>  <!-- the queue browse servlet -->
>  <servlet>
>    <servlet-name>QueueBrowseServlet</servlet-name>
>
> <servlet-class>org.apache.activemq.web.QueueBrowseServlet</servlet-class>
>  </servlet>
>  <servlet-mapping>
>    <servlet-name>QueueBrowseServlet</servlet-name>
>    <url-pattern>/queueBrowse/*</url-pattern>
>  </servlet-mapping>
>
>  <!-- track the session usage for web JMS clients -->
>  <filter>
>    <filter-name>session</filter-name>
>    <filter-class>org.apache.activemq.web.SessionFilter</filter-class>
>  </filter>
>
>  <filter>
>    <filter-name>spring-rq</filter-name>
>
>
> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
>  </filter>
>
>  <filter-mapping>
>    <filter-name>session</filter-name>
>    <url-pattern>/*</url-pattern>
>  </filter-mapping>
>  <filter-mapping>
>    <filter-name>spring-rq</filter-name>
>    <url-pattern>/*</url-pattern>
>  </filter-mapping>
>
>  <servlet>
>    <servlet-name>dispatcher</servlet-name>
>
>
> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
>    <load-on-startup>2</load-on-startup>
>  </servlet>
>
>  <servlet-mapping>
>    <servlet-name>dispatcher</servlet-name>
>    <url-pattern>*.action</url-pattern>
>  </servlet-mapping>
>
>  <welcome-file-list>
>    <welcome-file>index.html</welcome-file>
>    <welcome-file>index.jsp</welcome-file>
>  </welcome-file-list>
>
>  <jsp-config>
>    <jsp-property-group>
>      <url-pattern>*.jsp</url-pattern>
>      <include-prelude>/WEB-INF/jspf/headertags.jspf</include-prelude>
>    </jsp-property-group>
>  </jsp-config>
> </web-app>
>
>
>
> How do I specify admin URL. Any idea how to fix this error? Thanks.
>
>
> --
> View this message in context:
> http://www.nabble.com/NPE-for-%24%7BrequestContext.brokerQuery.brokerAdmin.brokerName%7D-tp21156924p21156924.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>