Enunciate
  1. Enunciate
  2. ENUNCIATE-654

Enunciate generates URL's that doesn't work

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.24
    • Fix Version/s: 1.26
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      2

      Description

      Hi,

      I have currently got a problem with some of my endpoints. All the endpoints mapped to /rest work, but the /excel, /json and /xml doesn't.

      But it seems that adding the header application/json to the /rest endpoint will produce JSON in the result, so our conclusion is that the Enunciate-generated URl's don't work..

      This URL work:
      http://localhost:8080/api/rest/query/SimpleMasterDataQuery?includeChildren=true&includeAttributes=true

      These URLs doesn't work:
      http://localhost:8080/api/excel/query/SimpleMasterDataQuery?includeChildren=true&includeAttributes=true
      http://localhost:8080/api/json/query/SimpleMasterDataQuery?includeChildren=true&includeAttributes=true
      http://localhost:8080/api/xml/query/SimpleMasterDataQuery?includeChildren=true&includeAttributes=true

      This is the output:
      2012-01-21 07:45:35,093 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [mds] [anonymousUser] PathInfo: /excel/query/SimpleMasterDataQuery
      2012-01-21 07:45:35,094 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [mds] [anonymousUser] PathInfo: /api/excel/query/SimpleMasterDataQuery
      2012-01-21 07:45:35,094 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [mds] [anonymousUser] Failed executing GET /api/excel/query/SimpleMasterDataQuery: org.jboss.resteasy.spi.NotFoundException: Could not find resource for relative : /api/excel/query/SimpleMasterDataQuery of full path: http://localhost:8080/api/excel/query/SimpleMasterDataQuery?includeChildren=true&includeAttributes=true
      at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:360) [:6.1.0.Final]
      at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:374) [:6.1.0.Final]
      at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:367) [:6.1.0.Final]
      at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:251) [:6.1.0.Final]
      at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:173) [:6.1.0.Final]
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:118) [:6.1.0.Final]
      at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [:6.1.0.Final]
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [:6.1.0.Final]
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [:6.1.0.Final]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
      at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:99) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at com.tracetracker.web.filter.Jboss6LogContextPopulatorFilter.doFilter(Jboss6LogContextPopulatorFilter.java:103) [:]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at com.tracetracker.web.filter.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:59) [:]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:57) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) [:3.0.7.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [:3.0.6.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [:3.0.6.RELEASE]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
      at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36) [:]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at com.tracetracker.web.filter.Jboss6LogContextPopulatorFilter.doFilter(Jboss6LogContextPopulatorFilter.java:103) [:]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at com.tracetracker.web.filter.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:59) [:]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [:3.0.7.RELEASE]
      at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) [:3.0.7.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [:3.0.6.RELEASE]
      at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [:3.0.6.RELEASE]
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.1.0.Final]
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [:6.1.0.Final]
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.1.0.Final]
      at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
      at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.1.0.Final]
      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.1.0.Final]
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159) [:6.1.0.Final]
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.1.0.Final]
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.1.0.Final]
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.1.0.Final]
      at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.1.0.Final]
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.1.0.Final]
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.1.0.Final]
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.1.0.Final]
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.1.0.Final]
      at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]

      1. enunciate-654-2.tar.gz
        5 kB
        Jan Erik Robertsen

        Activity

        Hide
        Viggo Navarsete added a comment -

        Ryan, any updates on this issue?

        Show
        Viggo Navarsete added a comment - Ryan, any updates on this issue?
        Hide
        Ryan Heaton added a comment -

        Sorry, I'm at a conference that finishes tomorrow. Haven't had time to apply myself to this.

        Can you try attaching a debugger to org.codehaus.enunciate.jboss.PathBasedConnegHttpPreprocessor and see how it's behaving?

        Show
        Ryan Heaton added a comment - Sorry, I'm at a conference that finishes tomorrow. Haven't had time to apply myself to this. Can you try attaching a debugger to org.codehaus.enunciate.jboss.PathBasedConnegHttpPreprocessor and see how it's behaving?
        Hide
        Viggo Navarsete added a comment -

        preprocessedPath = "/xml/query/SimpleEventQuery"

        When trying to iterate the mediaTypeMappings, it's empty! Any input Ryan?

        Show
        Viggo Navarsete added a comment - preprocessedPath = "/xml/query/SimpleEventQuery" When trying to iterate the mediaTypeMappings, it's empty! Any input Ryan?
        Hide
        Ryan Heaton added a comment -

        Do you see an init param in the web.xml file named resteasy.media.type.mappings? That's what JBoss should be using to provide those mappings....

        Show
        Ryan Heaton added a comment - Do you see an init param in the web.xml file named resteasy.media.type.mappings ? That's what JBoss should be using to provide those mappings....
        Hide
        Viggo Navarsete added a comment -

        Yes, there is an init-param called resteasy.media.type.mappings!

          <servlet>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <servlet-class>org.codehaus.enunciate.jboss.EnunciateJBossHttpServletDispatcher</servlet-class>
            <init-param>
              <param-name>resteasy.media.type.mappings</param-name>
              <param-value>xml : application/xml</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.resources</param-name>
              <param-value>com.tracetracker.tix.web.api.epcis.EpcisServicePort,com.tracetracker.tix.web.api.admin.AdminApi,com.tracetracker.tix.web.api.query.QueryApi,com.tracetracker.tix.web.api.object.ObjectApi,com.tracetracker.tix.web.api.event.EventApi,com.tracetracker.tix.web.api.about.AboutApi</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.servlet.mapping.prefix</param-name>
              <param-value>/api/xml</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.providers</param-name>
              <param-value />
            </init-param>
            <init-param>
              <param-name>resteasy.scan</param-name>
              <param-value>false</param-value>
            </init-param>
          </servlet>
        
        Show
        Viggo Navarsete added a comment - Yes, there is an init-param called resteasy.media.type.mappings! <servlet> <servlet-name>resteasy-jaxrs</servlet-name> <servlet-class>org.codehaus.enunciate.jboss.EnunciateJBossHttpServletDispatcher</servlet-class> <init-param> <param-name>resteasy.media.type.mappings</param-name> <param-value>xml : application/xml</param-value> </init-param> <init-param> <param-name>resteasy.resources</param-name> <param-value>com.tracetracker.tix.web.api.epcis.EpcisServicePort,com.tracetracker.tix.web.api.admin.AdminApi,com.tracetracker.tix.web.api.query.QueryApi,com.tracetracker.tix.web.api.object.ObjectApi,com.tracetracker.tix.web.api.event.EventApi,com.tracetracker.tix.web.api.about.AboutApi</param-value> </init-param> <init-param> <param-name>resteasy.servlet.mapping.prefix</param-name> <param-value>/api/xml</param-value> </init-param> <init-param> <param-name>resteasy.providers</param-name> <param-value /> </init-param> <init-param> <param-name>resteasy.scan</param-name> <param-value>false</param-value> </init-param> </servlet>
        Hide
        Viggo Navarsete added a comment -

        Ryan, any updates on this issue?

        Show
        Viggo Navarsete added a comment - Ryan, any updates on this issue?
        Hide
        Ryan Heaton added a comment -

        I guess I need to be able to reproduce it. I can't figure out why your set of media type mappings is empty. That init-param is still applicable as far as I can tell.

        You say it happened with your update to Spring 3, right? Were there any other changes/updates that might have affected this? Can you give me some way to reproduce it locally?

        Show
        Ryan Heaton added a comment - I guess I need to be able to reproduce it. I can't figure out why your set of media type mappings is empty. That init-param is still applicable as far as I can tell. You say it happened with your update to Spring 3, right? Were there any other changes/updates that might have affected this? Can you give me some way to reproduce it locally?
        Hide
        Viggo Navarsete added a comment -

        Ryan, if you give me some places I can debug this locally then I think it might be faster than trying to give you something to reproduce.

        Show
        Viggo Navarsete added a comment - Ryan, if you give me some places I can debug this locally then I think it might be faster than trying to give you something to reproduce.
        Hide
        Viggo Navarsete added a comment -

        My generated web.xml looks like this:

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
        
          <display-name>TIX API</display-name>
        
          <context-param>
        		<param-name>javax.faces.PROJECT_STAGE</param-name>
        		<param-value>Development</param-value>
        	</context-param>
        
          <context-param>
        		<param-name>auth-type</param-name>
        		<param-value>FORM</param-value>
        	</context-param>
        
          <context-param>
        		<param-name>primefaces.THEME</param-name>
        		<param-value>redmond</param-value>
        	</context-param>
        
          <filter>
                <filter-name>UrlRewriteFilter</filter-name>
                <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
              
                <init-param>
                    <param-name>confReloadCheckInterval</param-name>
                    <param-value>10</param-value>
                </init-param>
            </filter>
        
          <filter>
                <filter-name>springSecurityFilterChain</filter-name>
                <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
            </filter>
        
          <filter>
                <filter-name>NodeSelectorFilter</filter-name>
                <filter-class>com.tracetracker.tix.web.NodeSelectorFilter</filter-class>
            </filter>
        
          <filter>
                <filter-name>HTTPRequestContextFilter</filter-name>
                <filter-class>org.codehaus.enunciate.webapp.HTTPRequestContextFilter</filter-class>
            </filter>
        
          <filter>
        		<filter-name>PrimeFaces FileUpload Filter</filter-name>
        		<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
        		<init-param>
        			<param-name>thresholdSize</param-name>
        			<param-value>2097152</param-value>
        		</init-param>
        	</filter>
        
          <filter>
            <filter-name>http-request-context</filter-name>
            <filter-class>org.codehaus.enunciate.webapp.HTTPRequestContextFilter</filter-class>
          </filter>
        
          <filter>
            <filter-name>wadl-filter</filter-name>
            <filter-class>org.codehaus.enunciate.webapp.WADLFilter</filter-class>
            <init-param>
              <param-name>assumed-base-address</param-name>
              <param-value>http://localhost:8080/TIX API</param-value>
            </init-param>
          </filter>
        
          <filter-mapping>
                <filter-name>UrlRewriteFilter</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>REQUEST</dispatcher>
                <dispatcher>FORWARD</dispatcher>
            </filter-mapping>
        
          <filter-mapping>
                <filter-name>springSecurityFilterChain</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>REQUEST</dispatcher>
                <dispatcher>FORWARD</dispatcher>
            </filter-mapping>
        
          <filter-mapping>
        		<filter-name>NodeSelectorFilter</filter-name>
        		<url-pattern>/*</url-pattern>
        		<dispatcher>REQUEST</dispatcher>
        		<dispatcher>FORWARD</dispatcher>
        	</filter-mapping>
        
          <filter-mapping>
                <filter-name>HTTPRequestContextFilter</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>REQUEST</dispatcher>
                <dispatcher>FORWARD</dispatcher>
            </filter-mapping>
        
          <filter-mapping>
        		<filter-name>PrimeFaces FileUpload Filter</filter-name>
        		<servlet-name>Faces Servlet</servlet-name>
        	</filter-mapping>
        
          <filter-mapping>
            <filter-name>http-request-context</filter-name>
            <url-pattern>/*</url-pattern>
          </filter-mapping>
        
          <filter-mapping>
            <filter-name>wadl-filter</filter-name>
            <url-pattern>/application.wadl</url-pattern>
          </filter-mapping>
        
          <listener>
        		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
        	</listener>
        
          <servlet>
        		<servlet-name>GapServlet</servlet-name>
        		<servlet-class>com.tracetracker.tix.gap.GanService</servlet-class>
        	</servlet>
        
          <servlet>
        		<servlet-name>Faces Servlet</servlet-name>
        		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        		<load-on-startup>1</load-on-startup>
        	</servlet>
        
          <servlet>
        		<servlet-name>APIRedirectServlet</servlet-name>
        		<servlet-class>com.tracetracker.web.RedirectServlet</servlet-class>
        		<init-param>
        			<param-name>url</param-name>
        			<param-value>api.html</param-value>
        		</init-param>
        	</servlet>
        
          <servlet>
        		<servlet-name>ConsoleRedirectServlet</servlet-name>
        		<servlet-class>com.tracetracker.web.RedirectServlet</servlet-class>
        		<init-param>
        			<param-name>url</param-name>
        			<param-value>faces/search/findEPC.xhtml</param-value>
        		</init-param>
        	</servlet>
        
          <servlet>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <servlet-class>org.codehaus.enunciate.jboss.EnunciateJBossHttpServletDispatcher</servlet-class>
            <init-param>
              <param-name>resteasy.media.type.mappings</param-name>
              <param-value>xml : application/xml, json : application/json</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.resources</param-name>
              <param-value>com.tracetracker.tix.web.api.epcis.EpcisServicePort,com.tracetracker.tix.web.api.admin.AdminApi,com.tracetracker.tix.web.api.query.QueryApi,com.tracetracker.tix.web.api.query.UnconfirmedLinksApi,com.tracetracker.tix.web.api.object.ObjectApi,com.tracetracker.tix.web.api.trd.TRDApi,com.tracetracker.tix.web.api.event.EventApi,com.tracetracker.tix.web.api.deprecated.DeprecatedApi,com.tracetracker.tix.web.api.about.AboutApi</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.servlet.mapping.prefix</param-name>
              <param-value>/api/xml</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.providers</param-name>
              <param-value>org.codehaus.enunciate.jboss.ResteasyJacksonJaxbProvider</param-value>
            </init-param>
            <init-param>
              <param-name>resteasy.scan</param-name>
              <param-value>false</param-value>
            </init-param>
          </servlet>
        
          <servlet-mapping>
        		<servlet-name>GapServlet</servlet-name>
        		<url-pattern>/invoker/hessian/GanService</url-pattern>
        	</servlet-mapping>
        
          <servlet-mapping>
        		<servlet-name>APIRedirectServlet</servlet-name>
        		<url-pattern>/api</url-pattern>
        	</servlet-mapping>
        
          <servlet-mapping>
        		<servlet-name>Faces Servlet</servlet-name>
        		<url-pattern>/faces/*</url-pattern>
        		<url-pattern>*.jsf</url-pattern>
        	</servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/about</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/admin/queue/import</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/admin/queue/importError</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/CountEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/ExtendedEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/SimpleEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/SimpleEventTrace</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/SimpleMasterDataQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/subscription/getQueryNames</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/subscription/getSubscriptionIds</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/subscription/subscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/event/subscription/unsubscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/gci/deleteTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/gci/importTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/object</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/query/incomingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/query/incomingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/query/outgoingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/query/outgoingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/api/xml/trd</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/about</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/admin/queue/import</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/admin/queue/importError</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/CountEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/ExtendedEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/SimpleEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/SimpleEventTrace</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/SimpleMasterDataQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/subscription/getQueryNames</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/subscription/getSubscriptionIds</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/subscription/subscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/event/subscription/unsubscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/gci/deleteTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/gci/importTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/object</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/query/incomingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/query/incomingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/query/outgoingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/query/outgoingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/json/trd</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/about</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/admin/queue/import</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/admin/queue/importError</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/CountEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/ExtendedEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/SimpleEventQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/SimpleEventTrace</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/SimpleMasterDataQuery</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/subscription/getQueryNames</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/subscription/getSubscriptionIds</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/subscription/subscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/event/subscription/unsubscribe</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/gci/deleteTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/gci/importTRD</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/object</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/query/incomingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/query/incomingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/query/outgoingPendingAcceptance</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/query/outgoingPendingShipment</url-pattern>
          </servlet-mapping>
        
          <servlet-mapping>
            <servlet-name>resteasy-jaxrs</servlet-name>
            <url-pattern>/xml/trd</url-pattern>
          </servlet-mapping>
        
          <session-config>
        		<session-timeout>60</session-timeout>
        	</session-config>
        
          <mime-mapping>
            <extension>wsdl</extension>
            <mime-type>text/xml</mime-type>
          </mime-mapping>
        
          <mime-mapping>
            <extension>xsd</extension>
            <mime-type>text/xml</mime-type>
          </mime-mapping>
        
          <welcome-file-list>
        		<welcome-file>faces/search/findEPC.xhtml</welcome-file>
        	</welcome-file-list>
        
          <error-page>
        		<exception-type>javax.faces.application.ViewExpiredException</exception-type>
        		<location>/templates/master.xhtml</location>
        	</error-page>
        
        </web-app>
        
        Show
        Viggo Navarsete added a comment - My generated web.xml looks like this: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>TIX API</display-name> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <param-name>auth-type</param-name> <param-value>FORM</param-value> </context-param> <context-param> <param-name>primefaces.THEME</param-name> <param-value>redmond</param-value> </context-param> <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <init-param> <param-name>confReloadCheckInterval</param-name> <param-value>10</param-value> </init-param> </filter> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter> <filter-name>NodeSelectorFilter</filter-name> <filter-class>com.tracetracker.tix.web.NodeSelectorFilter</filter-class> </filter> <filter> <filter-name>HTTPRequestContextFilter</filter-name> <filter-class>org.codehaus.enunciate.webapp.HTTPRequestContextFilter</filter-class> </filter> <filter> <filter-name>PrimeFaces FileUpload Filter</filter-name> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> <init-param> <param-name>thresholdSize</param-name> <param-value>2097152</param-value> </init-param> </filter> <filter> <filter-name>http-request-context</filter-name> <filter-class>org.codehaus.enunciate.webapp.HTTPRequestContextFilter</filter-class> </filter> <filter> <filter-name>wadl-filter</filter-name> <filter-class>org.codehaus.enunciate.webapp.WADLFilter</filter-class> <init-param> <param-name>assumed-base-address</param-name> <param-value>http://localhost:8080/TIX API</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>NodeSelectorFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>HTTPRequestContextFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <filter-mapping> <filter-name>PrimeFaces FileUpload Filter</filter-name> <servlet-name>Faces Servlet</servlet-name> </filter-mapping> <filter-mapping> <filter-name>http-request-context</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>wadl-filter</filter-name> <url-pattern>/application.wadl</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>GapServlet</servlet-name> <servlet-class>com.tracetracker.tix.gap.GanService</servlet-class> </servlet> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>APIRedirectServlet</servlet-name> <servlet-class>com.tracetracker.web.RedirectServlet</servlet-class> <init-param> <param-name>url</param-name> <param-value>api.html</param-value> </init-param> </servlet> <servlet> <servlet-name>ConsoleRedirectServlet</servlet-name> <servlet-class>com.tracetracker.web.RedirectServlet</servlet-class> <init-param> <param-name>url</param-name> <param-value>faces/search/findEPC.xhtml</param-value> </init-param> </servlet> <servlet> <servlet-name>resteasy-jaxrs</servlet-name> <servlet-class>org.codehaus.enunciate.jboss.EnunciateJBossHttpServletDispatcher</servlet-class> <init-param> <param-name>resteasy.media.type.mappings</param-name> <param-value>xml : application/xml, json : application/json</param-value> </init-param> <init-param> <param-name>resteasy.resources</param-name> <param-value>com.tracetracker.tix.web.api.epcis.EpcisServicePort,com.tracetracker.tix.web.api.admin.AdminApi,com.tracetracker.tix.web.api.query.QueryApi,com.tracetracker.tix.web.api.query.UnconfirmedLinksApi,com.tracetracker.tix.web.api.object.ObjectApi,com.tracetracker.tix.web.api.trd.TRDApi,com.tracetracker.tix.web.api.event.EventApi,com.tracetracker.tix.web.api.deprecated.DeprecatedApi,com.tracetracker.tix.web.api.about.AboutApi</param-value> </init-param> <init-param> <param-name>resteasy.servlet.mapping.prefix</param-name> <param-value>/api/xml</param-value> </init-param> <init-param> <param-name>resteasy.providers</param-name> <param-value>org.codehaus.enunciate.jboss.ResteasyJacksonJaxbProvider</param-value> </init-param> <init-param> <param-name>resteasy.scan</param-name> <param-value>false</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>GapServlet</servlet-name> <url-pattern>/invoker/hessian/GanService</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>APIRedirectServlet</servlet-name> <url-pattern>/api</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/about</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/admin/queue/import</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/admin/queue/importError</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/CountEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/ExtendedEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/SimpleEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/SimpleEventTrace</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/SimpleMasterDataQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/subscription/getQueryNames</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/subscription/getSubscriptionIds</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/subscription/subscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/event/subscription/unsubscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/gci/deleteTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/gci/importTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/object</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/query/incomingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/query/incomingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/query/outgoingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/query/outgoingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/api/xml/trd</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/about</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/admin/queue/import</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/admin/queue/importError</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/CountEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/ExtendedEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/SimpleEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/SimpleEventTrace</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/SimpleMasterDataQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/subscription/getQueryNames</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/subscription/getSubscriptionIds</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/subscription/subscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/event/subscription/unsubscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/gci/deleteTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/gci/importTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/object</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/query/incomingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/query/incomingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/query/outgoingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/query/outgoingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/json/trd</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/about</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/admin/queue/import</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/admin/queue/importError</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/CountEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/ExtendedEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/SimpleEventQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/SimpleEventTrace</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/SimpleMasterDataQuery</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/subscription/getQueryNames</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/subscription/getSubscriptionIds</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/subscription/subscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/event/subscription/unsubscribe</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/gci/deleteTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/gci/importTRD</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/object</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/query/incomingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/query/incomingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/query/outgoingPendingAcceptance</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/query/outgoingPendingShipment</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>resteasy-jaxrs</servlet-name> <url-pattern>/xml/trd</url-pattern> </servlet-mapping> <session-config> <session-timeout>60</session-timeout> </session-config> <mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type> </mime-mapping> <mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping> <welcome-file-list> <welcome-file>faces/search/findEPC.xhtml</welcome-file> </welcome-file-list> <error-page> <exception-type>javax.faces.application.ViewExpiredException</exception-type> <location>/templates/master.xhtml</location> </error-page> </web-app>
        Hide
        Viggo Navarsete added a comment -

        I have added debug output to resteasy, which might give you some more hints about what is wrong?!

        2012-04-18 13:14:32,313 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] PathInfo: /json/event/SimpleEventQuery
        2012-04-18 13:14:32,314 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] PathInfo: /tix/json/event/SimpleEventQuery
        2012-04-18 13:14:32,314 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] Failed executing GET /tix/json/event/SimpleEventQuery: org.jboss.resteasy.spi.NotFoundException: Could not find resource for relative : /tix/json/event/SimpleEventQuery of full path: http://localhost:8280/tix/json/event/SimpleEventQuery
        	at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:360) [:6.1.0.Final]
        	at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:374) [:6.1.0.Final]
        	at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:367) [:6.1.0.Final]
        	at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:251) [:6.1.0.Final]
        	at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:173) [:6.1.0.Final]
        	at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:118) [:6.1.0.Final]
        	at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [:6.1.0.Final]
        	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [:6.1.0.Final]
        	at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [:6.1.0.Final]
        	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at com.tracetracker.tix.web.RequestTimeFilter.doFilter(RequestTimeFilter.java:43) [:]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36) [:]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36) [:]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at com.tracetracker.tix.web.NodeSelectorFilter.doFilter(NodeSelectorFilter.java:163) [:]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) [:3.1.0.RELEASE]
        	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) [:3.1.0.RELEASE]
        	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE]
        	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) [:3.1.0.RELEASE]
        	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [:3.0.6.RELEASE]
        	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [:3.0.6.RELEASE]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) [:3.2.0]
        	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) [:3.2.0]
        	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) [:3.2.0]
        	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381) [:3.2.0]
        	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]
        	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]
        	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.1.0.Final]
        	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [:6.1.0.Final]
        	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.1.0.Final]
        	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
        	at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
        	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.1.0.Final]
        	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.1.0.Final]
        	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159) [:6.1.0.Final]
        	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.1.0.Final]
        	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.1.0.Final]
        	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.1.0.Final]
        	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.1.0.Final]
        	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.1.0.Final]
        	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.1.0.Final]
        	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.1.0.Final]
        	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.1.0.Final]
        	at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
        
        Show
        Viggo Navarsete added a comment - I have added debug output to resteasy, which might give you some more hints about what is wrong?! 2012-04-18 13:14:32,313 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] PathInfo: /json/event/SimpleEventQuery 2012-04-18 13:14:32,314 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] PathInfo: /tix/json/event/SimpleEventQuery 2012-04-18 13:14:32,314 DEBUG [org.jboss.resteasy.core.SynchronousDispatcher] [] [] Failed executing GET /tix/json/event/SimpleEventQuery: org.jboss.resteasy.spi.NotFoundException: Could not find resource for relative : /tix/json/event/SimpleEventQuery of full path: http://localhost:8280/tix/json/event/SimpleEventQuery at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:360) [:6.1.0.Final] at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:374) [:6.1.0.Final] at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:367) [:6.1.0.Final] at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:251) [:6.1.0.Final] at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:173) [:6.1.0.Final] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:118) [:6.1.0.Final] at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [:6.1.0.Final] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [:6.1.0.Final] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [:6.1.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(FilterDispatcher.java:63) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at com.tracetracker.tix.web.RequestTimeFilter.doFilter(RequestTimeFilter.java:43) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.codehaus.enunciate.webapp.HTTPRequestContextFilter.doFilter(HTTPRequestContextFilter.java:36) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at com.tracetracker.tix.web.NodeSelectorFilter.doFilter(NodeSelectorFilter.java:163) [:] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) [:3.1.0.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) [:3.1.0.RELEASE] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) [:3.1.0.RELEASE] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) [:3.1.0.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [:3.0.6.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [:3.0.6.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) [:3.2.0] at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) [:3.2.0] at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) [:3.2.0] at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381) [:3.2.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.1.0.Final] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [:6.1.0.Final] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.1.0.Final] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final] at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.1.0.Final] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.1.0.Final] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159) [:6.1.0.Final] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.1.0.Final] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.1.0.Final] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.1.0.Final] at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.1.0.Final] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.1.0.Final] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.1.0.Final] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.1.0.Final] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.1.0.Final] at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
        Hide
        Ryan Heaton added a comment -

        Hi. Apologies for the lack of response on this.

        So in order for Enunciate to provide resources at /xml or /json, it needs to have a mapping between the media type and the "id" of the media type, which is used to know what path to provide.

        So, for xml and json, Enunciate needs to be supplied a map that looks like this:

        "xml" -> "application/xml"
        "json" -> "application/json"
        ...etc...

        Fortunately, JBoss already had the concept of such a map. It was supplied in the "resteasy.media.type.mappings" property. When that init param was supplied, JBoss would build the map and make it available to the [http servlet dispatcher], which uses it to supply a [preprocessor] to REST requests which can do the necessary magic.

        So somewhere along the way of your update, JBoss isn't providing those media type mappings anymore. But without a way to debug it, I can't find out what happened.

        Show
        Ryan Heaton added a comment - Hi. Apologies for the lack of response on this. So in order for Enunciate to provide resources at /xml or /json, it needs to have a mapping between the media type and the "id" of the media type, which is used to know what path to provide. So, for xml and json, Enunciate needs to be supplied a map that looks like this: "xml" -> "application/xml" "json" -> "application/json" ...etc... Fortunately, JBoss already had the concept of such a map. It was supplied in the "resteasy.media.type.mappings" property. When that init param was supplied, JBoss would build the map and make it available to the [ http servlet dispatcher ], which uses it to supply a [ preprocessor ] to REST requests which can do the necessary magic. So somewhere along the way of your update, JBoss isn't providing those media type mappings anymore. But without a way to debug it, I can't find out what happened.
        Hide
        Viggo Navarsete added a comment -

        Hi Ryan, sent you a private mail about how you can reproduce this locally! Please tell me if you need more input

        Show
        Viggo Navarsete added a comment - Hi Ryan, sent you a private mail about how you can reproduce this locally! Please tell me if you need more input
        Hide
        Frode Aannevik added a comment -

        I have the same problem but it seems to only exist when deploying to JBoss, deploying the war in Jetty 6.1.25 (maven-jetty-plugin) works fine for all alternative endpoints.

        Show
        Frode Aannevik added a comment - I have the same problem but it seems to only exist when deploying to JBoss, deploying the war in Jetty 6.1.25 (maven-jetty-plugin) works fine for all alternative endpoints.
        Hide
        Ryan Heaton added a comment -

        I have the same problem but it seems to only exist when deploying to JBoss, deploying the war in Jetty 6.1.25 (maven-jetty-plugin) works fine for all alternative endpoints.

        We're still trying to reproduce this error. Can you give me some details on how to reproduce it on my box?

        Show
        Ryan Heaton added a comment - I have the same problem but it seems to only exist when deploying to JBoss, deploying the war in Jetty 6.1.25 (maven-jetty-plugin) works fine for all alternative endpoints. We're still trying to reproduce this error. Can you give me some details on how to reproduce it on my box?
        Hide
        Frode Aannevik added a comment -

        I have attached a minimal maven project that reproduces this error...

        To run the project in jetty

        $ mvn jetty:run-war -Ptest

        To build for JBoss 6

        $ mvn clean install

        Show
        Frode Aannevik added a comment - I have attached a minimal maven project that reproduces this error... To run the project in jetty $ mvn jetty:run-war -Ptest To build for JBoss 6 $ mvn clean install
        Hide
        Ryan Heaton added a comment -

        Fixed at b56c4ed.

        Workaround is to add the following context-param to the web.xml file that is getting merged:

          <context-param>
            <param-name>resteasy.media.type.mappings</param-name>
            <param-value>xml : application/xml, json : application/json</param-value>
          </context-param>
        
        Show
        Ryan Heaton added a comment - Fixed at b56c4ed. Workaround is to add the following context-param to the web.xml file that is getting merged: <context-param> <param-name> resteasy.media.type.mappings </param-name> <param-value> xml : application/xml, json : application/json </param-value> </context-param>
        Hide
        Jan Erik Robertsen added a comment -

        I have a similar problem where I want to have the subContext for the REST endpoints include /api/...
        I can get this to work for application/xml (and other content types) but not for application/json

        I've attached enunciate-654-2.tar.gz which reproduces the problem.

        In enunciate.xml I've used:

        <services>
          <rest defaultRestSubcontext="api/xml">
            <content-types>
              <content-type type="application/xml" id="api/xml" />
              <content-type type="application/json" id="api/json" />
            </content-types>
          </rest>
        </services>
        

        And in web.xml I've included:

        <context-param>
          <param-name>resteasy.media.type.mappings</param-name>
          <param-value>
            api/xml : application/xml,
            api/json : application/json
          </param-value>
        </context-param>
        

        In the generated doc the links for the mount point and for alternate mount points are correct except for json, which is not prefixed with /api/

        Hope you can help.

        Show
        Jan Erik Robertsen added a comment - I have a similar problem where I want to have the subContext for the REST endpoints include /api/... I can get this to work for application/xml (and other content types) but not for application/json I've attached enunciate-654-2.tar.gz which reproduces the problem. In enunciate.xml I've used: <services> <rest defaultRestSubcontext= "api/xml" > <content-types> <content-type type= "application/xml" id= "api/xml" /> <content-type type= "application/json" id= "api/json" /> </content-types> </rest> </services> And in web.xml I've included: <context-param> <param-name> resteasy.media.type.mappings </param-name> <param-value> api/xml : application/xml, api/json : application/json </param-value> </context-param> In the generated doc the links for the mount point and for alternate mount points are correct except for json, which is not prefixed with /api/ Hope you can help.
        Hide
        Ryan Heaton added a comment -

        I'll try to take a look, but the subcontext mappings were never designed for multi-path contexts.

        You may want to add a custom servlet filter that captures the relevant requests and redirects (server-side) them to the /api/endpoint after modifying the accept header...

        Show
        Ryan Heaton added a comment - I'll try to take a look, but the subcontext mappings were never designed for multi-path contexts. You may want to add a custom servlet filter that captures the relevant requests and redirects (server-side) them to the /api/endpoint after modifying the accept header...
        Hide
        Jan Erik Robertsen added a comment -

        Yes it feels like a bit of a hack.
        But still, it seems to work nicely for other content-types.

        Do you have some special handling for json, since that is added as an alternate mount point even though it is not specified in either enunciate.xml or in a @Produces annotation?

        Show
        Jan Erik Robertsen added a comment - Yes it feels like a bit of a hack. But still, it seems to work nicely for other content-types. Do you have some special handling for json, since that is added as an alternate mount point even though it is not specified in either enunciate.xml or in a @Produces annotation?
        Hide
        Ryan Heaton added a comment -

        I'm going to close this issue out as resolved. If you'd like to open up a separate issue for multi-path contexts, we can track that work there.

        Show
        Ryan Heaton added a comment - I'm going to close this issue out as resolved. If you'd like to open up a separate issue for multi-path contexts, we can track that work there.
        Hide
        Ryan Heaton added a comment -

        Closed with the release of 1.26.

        Show
        Ryan Heaton added a comment - Closed with the release of 1.26.

          People

          • Assignee:
            Ryan Heaton
            Reporter:
            Viggo Navarsete
          • Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: