Sergey,

Great thanks! Your proposed solution works for both cases, Jersey and CXF.
There is still work to do for odata4j to be CXF enabled. I will notify
this mailing list when we are done.

Regards,
Stephan

-----Original Message-----
From: Sergey Beryozkin <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Wed, 8 Feb 2012 12:45:26 +0100
To: "[email protected]" <[email protected]>
Subject: Re: JAXRS: RegEx Jersey vs. CXF (2.5.2)

>Hi
>
>On 08/02/12 08:59, Klevenz, Stephan wrote:
>> Hi,
>>
>> I could encircle the problem. If having this additional resource class
>> present then the expected getNavProperty handler is not called.
>>
>> @Path("{entitySetName}{optionalParens: (\\(\\))?}")
>> public class EntitiesRequestResource {
>>
>>    @GET
>>    @Produces({ ODataConstants.APPLICATION_ATOM_XML_CHARSET_UTF8,
>>    ODataConstants.TEXT_JAVASCRIPT_CHARSET_UTF8,
>>    ODataConstants.APPLICATION_JAVASCRIPT_CHARSET_UTF8 })
>>    public Response getEntities() {
>>      ...
>>    }
>> }
>>
>> Expected handler mapping:
>>
>> http://localhost:8810/test/test.svc/categories(1)/products    ->
>> getNavProperty
>> http://localhost:8810/test/test.svc/categories()              ->
>> getEntities
>> http://localhost:8810/test/test.svc/categories                ->
>> getEntities
>>
>> Here it seems that the CXF differs from Jersey in its implemented
>>mapping
>> strategy. Is there any option to get the behavior changed?
>
>As far as the mapping strategy is concerned, CXF does select the best
>matching root resource, but what happens in this specific case is that
>both root resources are happen to be equal candidates.
>
>The above @Path value gets translated to the following in CXF:
>/([^/]+?)(((\(\))?))(/.*)?
>
>where the '(/.*)?' bit is appended to the translated @Path expression.
>As a result,
>http://localhost:8810/test/test.svc/categories(1)/products
>is actually matched by the above expression.
>
>The other class is also matched, and their path values both have the
>same number of literal characters (none), default (1) & non-default
>(1) capturing groups.
>
>I'm wondering, how does Jersey decide that EntitiesRequestResource is
>not a candidate. is there a possibility there that it basically always
>starts from EntityRequestResource ? Its path will match
>'categories(1)/products' but neither 'categories()' nor
>'categories'...
>
>Note that CXF has a ResourceComparator extension that can be customize
>the selection between multiple candidates. But that is an extension...
>Personally, I'd consider keeping EntityRequestResource's Path as is
>but would simplify EntitiesRequestResource with having only
>Path("{entitySetName}") and  2 GET methods, one without @Path and
>another with @Path"()" - less compact but stays away from explicit
>regular expressions :-).
>
>However, I'm really curious now why Jersey works in this case. Can you
>please check on it on your side ?
>
>Thanks, Sergey
>
>>
>> Regards,
>> Stephan
>>
>>
>>
>>
>>
>>
>> -----Original Message-----
>> From: Sergey Beryozkin<[email protected]>
>> Reply-To: "[email protected]"<[email protected]>
>> Date: Tue, 7 Feb 2012 23:38:40 +0100
>> To: "[email protected]"<[email protected]>
>> Subject: Re: JAXRS: RegEx Jersey vs. CXF (2.5.2)
>>
>>> Hi
>>> On 07/02/12 16:45, Klevenz, Stephan wrote:
>>>> Hi,
>>>>
>>>> I have another issue within compatibility between Jersey and CXF and
>>>> maybe
>>>> you can give me a hint. The issue is with the following URL pattern
>>>> where
>>>> CXF doesn't dispatch to the expected handler:
>>>>
>>>> http://localhost:8810/test/test.svc/categories(1)/products
>>>>
>>>> The relevant code snippet is a resource class and a sub resource
>>>>class:
>>>>
>>>> @Path("{entitySetName}{id: \\(.+?\\)}")
>>>> public class EntityRequestResource {
>>>>
>>>>     @Path("{navProp: .+}")
>>>>     public PropertyRequestResource getNavProperty() {
>>>>       return new PropertyRequestResource();
>>>>     }
>>>> }
>>>>
>>>>
>>>> public class PropertyRequestResource {
>>>>     @GET
>>>>     @Produces({
>>>>       ODataConstants.APPLICATION_ATOM_XML_CHARSET_UTF8,
>>>>       ODataConstants.TEXT_JAVASCRIPT_CHARSET_UTF8,
>>>>       ODataConstants.APPLICATION_JAVASCRIPT_CHARSET_UTF8 })
>>>>     public Response getNavProperty() {...}
>>>> }
>>>>
>>>
>>> This works in my local test, will try your example a bit later
>>>
>>> Sergey
>>>
>>>> The complete WADL file is checked into a source repository and is
>>>> accessible at [1]. [2] is the corresponding Jersey generated WADL file
>>>> of
>>>> the same code. With Jersey it doesn't fail. [3] is an example maven
>>>> project with has a failing JUnit test isolating the problem. [4] is
>>>>the
>>>> fine trace of CXF that doesn't find a matching method.
>>>>
>>>> Any hint how to get this fixed is welcome. Thanks in advance.
>>>>
>>>> Regards,
>>>> Stephan
>>>>
>>>>
>>>> [1]
>>>>
>>>>
>>>>https://bitbucket.org/sklevenz/example/src/ecc3183d5976/org.example.cor
>>>>e/
>>>> sr
>>>> c/test/resources/wadl.cxf.xml
>>>> [2]
>>>>
>>>>
>>>>https://bitbucket.org/sklevenz/example/src/ecc3183d5976/org.example.cor
>>>>e/
>>>> sr
>>>> c/test/resources/wadl.jersey.xml
>>>> [3] https://bitbucket.org/sklevenz/example
>>>> [4] CXF Trace:
>>>> 2012-02-07 17:38:09,744 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest:
>>>> ******************************************************************
>>>> 2012-02-07 17:38:09,745 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest: Activated
>>>> Server
>>>> Type = CXF
>>>> 2012-02-07 17:38:09,745 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest:
>>>> ******************************************************************
>>>> 2012-02-07 17:38:09,746 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest:
>>>> ---------------------------------------------------------------
>>>> 2012-02-07 17:38:09,746 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest: test class:
>>>>     org.example.test.compatibility.OData4JCompatibilityTest
>>>> 2012-02-07 17:38:09,746 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest: test method:
>>>>     testNavigationProperty
>>>> 2012-02-07 17:38:09,746 INFO  [main]
>>>> org.example.test.compatibility.OData4JCompatibilityTest:
>>>> ---------------------------------------------------------------
>>>> 2012-02-07 17:38:09,909 DEBUG [main]
>>>> org.apache.cxf.common.logging.LogUtils: Using
>>>> org.apache.cxf.common.logging.Slf4jLogger for logging.
>>>> 2012-02-07 17:38:09,927 DEBUG [main] org.eclipse.jetty.util.log:
>>>>Logging
>>>> to org.slf4j.impl.Log4jLoggerAdapter(org.eclipse.jetty.util.log) via
>>>> org.eclipse.jetty.util.log.Slf4jLog
>>>> 2012-02-07 17:38:09,959 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: filterNameMap={}
>>>> 2012-02-07 17:38:09,959 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: pathFilters=null
>>>> 2012-02-07 17:38:09,959 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: servletFilterMap=null
>>>> 2012-02-07 17:38:09,959 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler:
>>>>
>>>>
>>>>servletPathMap={/test/test.svc/*=org.apache.cxf.jaxrs.servlet.CXFNonSpr
>>>>in
>>>> gJ
>>>> axrsServlet-255194190}
>>>> 2012-02-07 17:38:09,959 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler:
>>>>
>>>>
>>>>servletNameMap={org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-2
>>>>55
>>>> 19
>>>> 4190=org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190}
>>>> 2012-02-07 17:38:09,974 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.Server@6364cbde +
>>>> [email protected]:8810 STOPPED as connector
>>>> 2012-02-07 17:38:09,979 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.handler.HandlerCollection@767a9224#STOPPED +
>>>> o.e.j.s.ServletContextHandler{/,null} as handler
>>>> 2012-02-07 17:38:09,979 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.Server@6364cbde +
>>>> org.eclipse.jetty.server.handler.HandlerCollection@767a9224#STOPPED as
>>>> handler
>>>> 2012-02-07 17:38:09,979 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.server.Server@6364cbde
>>>> 2012-02-07 17:38:09,979 INFO  [main] org.eclipse.jetty.server.Server:
>>>> jetty-7.5.4.v20111024
>>>> 2012-02-07 17:38:09,996 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.Server@6364cbde +
>>>> qtp881373670{8<=0<=0/254,-1}#STOPPED as threadpool
>>>> 2012-02-07 17:38:09,996 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.server.handler.HandlerCollection@767a9224#STOPPED
>>>> 2012-02-07 17:38:09,996 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,017 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STOPPED +
>>>> org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190 as
>>>> servlet
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STOPPED +
>>>>
>>>>
>>>>[/test/test.svc/*]=>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServl
>>>>et
>>>> -2
>>>> 55194190 as servletMapping
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STOPPED +
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STOPPED as handler
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STOPPED +
>>>> org.eclipse.jetty.server.session.HashSessionManager@62ac06d4#STOPPED
>>>>as
>>>> sessionManager
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> o.e.j.s.ServletContextHandler{/,null} +
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STOPPED as
>>>> handler
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STOPPED
>>>> 2012-02-07 17:38:10,018 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.server.session.HashSessionManager@62ac06d4#STOPPED
>>>> 2012-02-07 17:38:10,019 DEBUG [main]
>>>> org.eclipse.jetty.util.component.Container: Container
>>>> org.eclipse.jetty.server.Server@6364cbde +
>>>> org.eclipse.jetty.server.session.HashSessionIdManager@2c8c7d6#STOPPED
>>>>as
>>>> sessionIdManager
>>>> 2012-02-07 17:38:10,020 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.server.session.HashSessionIdManager@2c8c7d6#STOPPED
>>>> 2012-02-07 17:38:10,020 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.server.session.HashSessionIdManager@2c8c7d6#STARTED
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.server.session.HashSessionManager@62ac06d4#STARTED
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STOPPED
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: filterNameMap={}
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: pathFilters=null
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler: servletFilterMap=null
>>>> 2012-02-07 17:38:10,021 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler:
>>>>
>>>>
>>>>servletPathMap={/test/test.svc/*=org.apache.cxf.jaxrs.servlet.CXFNonSpr
>>>>in
>>>> gJ
>>>> axrsServlet-255194190}
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.servlet.ServletHandler:
>>>>
>>>>
>>>>servletNameMap={org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-2
>>>>55
>>>> 19
>>>> 4190=org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190}
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.server.handler.AbstractHandler: starting
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STARTING
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.servlet.ServletHandler@5c5ddd3#STARTED
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.server.handler.AbstractHandler: starting
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STARTING
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.server.session.SessionHandler@1664a9b#STARTED
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.server.handler.AbstractHandler: starting
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,022 INFO  [main]
>>>> org.eclipse.jetty.server.handler.ContextHandler: started
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,022 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190
>>>> 2012-02-07 17:38:10,345 INFO  [main]
>>>>org.apache.cxf.endpoint.ServerImpl:
>>>> Setting the server's publish address to be /
>>>> 2012-02-07 17:38:10,399 DEBUG [main]
>>>>org.apache.cxf.endpoint.ServerImpl:
>>>> Server is starting.
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.apache.cxf.transport.servlet.ServletDestination: registering
>>>> incoming
>>>> observer: org.apache.cxf.transport.ChainInitiationObserver@2224ea85
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>>org.apache.cxf.endpoint.ServerImpl:
>>>> register the server to serverRegistry
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.server.handler.AbstractHandler: starting
>>>> org.eclipse.jetty.server.handler.HandlerCollection@767a9224#STARTING
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.server.handler.HandlerCollection@767a9224#STARTED
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.server.handler.AbstractHandler: starting
>>>> org.eclipse.jetty.server.Server@6364cbde
>>>> 2012-02-07 17:38:10,400 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> qtp881373670{8<=0<=0/254,-1}#STOPPED
>>>> 2012-02-07 17:38:10,404 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> qtp881373670{8<=7<=8/254,0}#STARTED
>>>> 2012-02-07 17:38:10,405 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>> [email protected]:8810 STOPPED
>>>> 2012-02-07 17:38:10,419 INFO  [main]
>>>> org.eclipse.jetty.server.AbstractConnector: Started
>>>> [email protected]:8810 STARTING
>>>> 2012-02-07 17:38:10,419 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: starting
>>>>
>>>>
>>>>org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorMa
>>>>na
>>>> ge
>>>> r@1633c3e6#STOPPED
>>>> 2012-02-07 17:38:10,429 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>>
>>>>
>>>>org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorMa
>>>>na
>>>> ge
>>>> r@1633c3e6#STARTED
>>>> 2012-02-07 17:38:10,429 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> [email protected]:8810 STARTED
>>>> 2012-02-07 17:38:10,429 DEBUG [main]
>>>> org.eclipse.jetty.util.component.AbstractLifeCycle: STARTED
>>>> org.eclipse.jetty.server.Server@6364cbde
>>>> 2012-02-07 17:38:10,429 DEBUG [qtp881373670-22 Selector0]
>>>> org.eclipse.jetty.io.nio: Starting Thread[qtp881373670-22
>>>> Selector0,5,main] on
>>>>org.eclipse.jetty.io.nio.SelectorManager$1@52287b58
>>>> 2012-02-07 17:38:10,429 DEBUG [main]
>>>> org.example.test.compatibility.cxf.CxfTestClient: ****
>>>>
>>>>
>>>>CxfTestClient.getResource(http://localhost:8810/test/test.svc/categorie
>>>>s(
>>>> 1)
>>>> /products)
>>>> 2012-02-07 17:38:10,656 DEBUG [main]
>>>> org.apache.http.impl.conn.SingleClientConnManager: Get connection for
>>>> route HttpRoute[{}->http://localhost:8810]
>>>> 2012-02-07 17:38:10,660 DEBUG [main]
>>>> org.apache.http.impl.conn.DefaultClientConnectionOperator: Connecting
>>>>to
>>>> localhost:8810
>>>> 2012-02-07 17:38:10,691 DEBUG [main]
>>>> org.apache.http.client.protocol.RequestAddCookies: CookieSpec
>>>>selected:
>>>> best-match
>>>> 2012-02-07 17:38:10,707 DEBUG [main]
>>>> org.apache.http.client.protocol.RequestAuthCache: Auth cache not set
>>>>in
>>>> the context
>>>> 2012-02-07 17:38:10,707 DEBUG [main]
>>>> org.apache.http.impl.client.DefaultHttpClient: Attempt 1 to execute
>>>> request
>>>> 2012-02-07 17:38:10,707 DEBUG [main]
>>>> org.apache.http.impl.conn.DefaultClientConnection: Sending request:
>>>>GET
>>>> /test/test.svc/categories(1)/products HTTP/1.1
>>>> 2012-02-07 17:38:10,707 DEBUG [main] org.apache.http.wire:>>   "GET
>>>> /test/test.svc/categories(1)/products HTTP/1.1[\r][\n]"
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.wire:>>   "Host:
>>>> localhost:8810[\r][\n]"
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.wire:>>
>>>> "Connection:
>>>> Keep-Alive[\r][\n]"
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.wire:>>
>>>> "User-Agent:
>>>> Apache-HttpClient/4.1.2 (java 1.5)[\r][\n]"
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.wire:>>
>>>>"[\r][\n]"
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.headers:>>   GET
>>>> /test/test.svc/categories(1)/products HTTP/1.1
>>>> 2012-02-07 17:38:10,708 DEBUG [main] org.apache.http.headers:>>
>>>>Host:
>>>> localhost:8810
>>>> 2012-02-07 17:38:10,709 DEBUG [main] org.apache.http.headers:>>
>>>> Connection: Keep-Alive
>>>> 2012-02-07 17:38:10,709 DEBUG [main] org.apache.http.headers:>>
>>>> User-Agent: Apache-HttpClient/4.1.2 (java 1.5)
>>>> 2012-02-07 17:38:10,727 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>>org.eclipse.jetty.server.Server:
>>>> REQUEST /test/test.svc/categories(1)/products on
>>>>
>>>>
>>>>org.eclipse.jetty.server.nio.SelectChannelConnector$SelectChannelHttpCo
>>>>nn
>>>> ec
>>>> tion@[email protected]:8810<->127.0.0.1:51920
>>>> 2012-02-07 17:38:10,727 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.eclipse.jetty.server.handler.ContextHandler: scope
>>>> null||/test/test.svc/categories(1)/products @
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,727 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.eclipse.jetty.server.handler.ContextHandler:
>>>> context=||/test/test.svc/categories(1)/products @
>>>> o.e.j.s.ServletContextHandler{/,null}
>>>> 2012-02-07 17:38:10,729 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>>org.eclipse.jetty.server.session:
>>>>
>>>>
>>>>sessionManager=org.eclipse.jetty.server.session.HashSessionManager@62ac
>>>>06
>>>> d4
>>>> #STARTED
>>>> 2012-02-07 17:38:10,729 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>>org.eclipse.jetty.server.session:
>>>> session=null
>>>> 2012-02-07 17:38:10,730 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.eclipse.jetty.servlet.ServletHandler: servlet
>>>> |/test/test.svc|/categories(1)/products ->
>>>> org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet-255194190
>>>> 2012-02-07 17:38:10,730 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.eclipse.jetty.servlet.ServletHandler: chain=
>>>> 2012-02-07 17:38:10,734 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.transport.servlet.ServletController: Service http
>>>>request
>>>> on thread: Thread[qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products,5,main]
>>>> 2012-02-07 17:38:10,734 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.transport.http.AbstractHTTPDestination: Create a new
>>>> message for processing
>>>> 2012-02-07 17:38:10,739 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.transport.http.Headers: Request Headers:
>>>> {connection=[keep-alive], Content-Type=[null], Host=[localhost:8810],
>>>> User-Agent=[Apache-HttpClient/4.1.2 (java 1.5)]}
>>>> 2012-02-07 17:38:10,754 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Adding interceptor
>>>> org.apache.cxf.interceptor.ServiceInvokerInterceptor@6cb101cf to phase
>>>> invoke
>>>> 2012-02-07 17:38:10,754 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Adding interceptor
>>>> org.apache.cxf.interceptor.OutgoingChainInterceptor@6e61a414 to phase
>>>> post-invoke
>>>> 2012-02-07 17:38:10,754 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Adding interceptor
>>>> org.apache.cxf.interceptor.OneWayProcessorInterceptor@4c5b55a9 to
>>>>phase
>>>> pre-logical
>>>> 2012-02-07 17:38:10,754 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Adding interceptor
>>>> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor@54f169 to phase
>>>> unmarshal
>>>> 2012-02-07 17:38:10,755 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Adding interceptor
>>>> org.apache.cxf.transport.https.CertConstraintsInterceptor@4c825cf3 to
>>>> phase pre-stream
>>>> 2012-02-07 17:38:10,755 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Chain
>>>> org.apache.cxf.phase.PhaseInterceptorChain@3c789d63 was created.
>>>>Current
>>>> flow:
>>>>     pre-stream [CertConstraintsInterceptor]
>>>>     unmarshal [JAXRSInInterceptor]
>>>>     pre-logical [OneWayProcessorInterceptor]
>>>>     invoke [ServiceInvokerInterceptor]
>>>>     post-invoke [OutgoingChainInterceptor]
>>>>
>>>> 2012-02-07 17:38:10,755 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Invoking handleMessage on
>>>> interceptor
>>>> org.apache.cxf.transport.https.CertConstraintsInterceptor@4c825cf3
>>>> 2012-02-07 17:38:10,756 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.phase.PhaseInterceptorChain: Invoking handleMessage on
>>>> interceptor org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor@54f169
>>>> 2012-02-07 17:38:10,762 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Trying to select a resource
>>>> class,
>>>> request path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e may get selected, request path :
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e, resource class @Path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntityRequestResou
>>>>rc
>>>> e
>>>> may get selected, request path :
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntityRequestResou
>>>>rc
>>>> e,
>>>>    resource class @Path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityLinksRequestResour
>>>>ce
>>>> may get selected, request path :
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityLinksRequestResour
>>>>ce
>>>> ,
>>>> resource class @Path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityPropertyRequestRes
>>>>ou
>>>> rc
>>>> e may get selected, request path :
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityPropertyRequestRes
>>>>ou
>>>> rc
>>>> e, resource class @Path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No resource class match for
>>>> org.example.test.compatibility.resource.SimpleCompatibilityResource,
>>>> request path : /categories(1)/products
>>>> 2012-02-07 17:38:10,763 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e has been selected, request path :
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e, resource class @Path : /categories(1)/products
>>>> 2012-02-07 17:38:10,764 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Trying to select a resource
>>>> operation on the resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e
>>>> 2012-02-07 17:38:10,765 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No method match, method name :
>>>> getEntities, request path : /products, method @Path : /, HTTP Method :
>>>> GET, method HTTP Method : GET, ContentType : */*, method @Consumes :
>>>> */*,,
>>>> Accept : */*,, method @Produces :
>>>>
>>>>
>>>>application/atom+xml;charset=utf-8,text/javascript;charset=utf-8,applic
>>>>at
>>>> io
>>>> n/json;charset=utf-8,.
>>>> 2012-02-07 17:38:10,765 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No method match, method name :
>>>> getEntitiesCount, request path : /products, method @Path : /{count:
>>>> [$]count}, HTTP Method : GET, method HTTP Method : GET, ContentType :
>>>> */*,
>>>> method @Consumes : */*,, Accept : */*,, method @Produces :
>>>>
>>>>
>>>>application/atom+xml;charset=utf-8,text/javascript;charset=utf-8,applic
>>>>at
>>>> io
>>>> n/json;charset=utf-8,.
>>>> 2012-02-07 17:38:10,767 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: Trying to select a resource
>>>> operation on the resource class
>>>>
>>>>
>>>>org.example.test.compatibility.resource.CompatibilityEntitiesRequestRes
>>>>ou
>>>> rc
>>>> e
>>>> 2012-02-07 17:38:10,767 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No method match, method name :
>>>> getEntities, request path : /products, method @Path : /, HTTP Method :
>>>> GET, method HTTP Method : GET, ContentType : */*, method @Consumes :
>>>> */*,,
>>>> Accept : */*,, method @Produces :
>>>>
>>>>
>>>>application/atom+xml;charset=utf-8,text/javascript;charset=utf-8,applic
>>>>at
>>>> io
>>>> n/json;charset=utf-8,.
>>>> 2012-02-07 17:38:10,767 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No method match, method name :
>>>> getEntitiesCount, request path : /products, method @Path : /{count:
>>>> [$]count}, HTTP Method : GET, method HTTP Method : GET, ContentType :
>>>> */*,
>>>> method @Consumes : */*,, Accept : */*,, method @Produces :
>>>>
>>>>
>>>>application/atom+xml;charset=utf-8,text/javascript;charset=utf-8,applic
>>>>at
>>>> io
>>>> n/json;charset=utf-8,.
>>>> 2012-02-07 17:38:10,768 WARN  [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.utils.JAXRSUtils: No operation matching request
>>>> path
>>>> "/test/test.svc/categories(1)/products" is found, Relative Path:
>>>> /products, HTTP Method: GET, ContentType: */*, Accept: */*,. Please
>>>> enable
>>>> FINE/TRACE log level for more details.
>>>> 2012-02-07 17:38:10,770 WARN  [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper:
>>>> WebApplicationException has been caught : no cause is available
>>>> 2012-02-07 17:38:10,771 DEBUG [qtp881373670-23 -
>>>> /test/test.svc/categories(1)/products]
>>>> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper: no cause is
>>>> available
>>>> javax.ws.rs.WebApplicationException
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod(JAXRSUtils.java:
>>>>41
>>>> 5)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXR
>>>>SI
>>>> nI
>>>> nterceptor.java:212)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRS
>>>>In
>>>> In
>>>> terceptor.java:89)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptor
>>>>Ch
>>>> ai
>>>> n.java:263)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiat
>>>>io
>>>> nO
>>>> bserver.java:123)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHT
>>>>TP
>>>> De
>>>> stination.java:207)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.ServletController.invokeDestination(Se
>>>>rv
>>>> le
>>>> tController.java:213)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.ServletController.invoke(ServletContro
>>>>ll
>>>> er
>>>> .java:154)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSprin
>>>>gS
>>>> er
>>>> vlet.java:126)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Abst
>>>>ra
>>>> ct
>>>> HTTPServlet.java:185)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTP
>>>>Se
>>>> rv
>>>> let.java:113)
>>>>           at
>>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>>>>           at
>>>>
>>>>
>>>>org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHT
>>>>TP
>>>> Se
>>>> rvlet.java:164)
>>>>           at
>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:4
>>>>80
>>>> )
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler
>>>>.j
>>>> av
>>>> a:225)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler
>>>>.j
>>>> av
>>>> a:941)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:40
>>>>9)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.
>>>>ja
>>>> va
>>>> :186)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.
>>>>ja
>>>> va
>>>> :875)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.jav
>>>>a:
>>>> 11
>>>> 7)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollec
>>>>ti
>>>> on
>>>> .java:149)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.j
>>>>av
>>>> a:
>>>> 110)
>>>>           at org.eclipse.jetty.server.Server.handle(Server.java:345)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.ja
>>>>va
>>>> :4
>>>> 41)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(H
>>>>tt
>>>> pC
>>>> onnection.java:919)
>>>>           at
>>>> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
>>>>           at
>>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection
>>>>.j
>>>> av
>>>> a:51)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndP
>>>>oi
>>>> nt
>>>> .java:586)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPo
>>>>in
>>>> t.
>>>> java:44)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.
>>>>ja
>>>> va
>>>> :598)
>>>>           at
>>>>
>>>>
>>>>org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.j
>>>>av
>>>> a:
>>>> 533)
>>>>           at java.lang.Thread.run(Thread.java:680)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Sergey Beryozkin
>>>
>>> Talend Community Coders
>>> http://coders.talend.com/
>>>
>>> Blog: http://sberyozkin.blogspot.com
>>
>
>
>--
>Sergey Beryozkin
>
>Talend Community Coders
>http://coders.talend.com/
>
>Blog: http://sberyozkin.blogspot.com

Reply via email to