Hi
On 08/02/12 13:00, Klevenz, Stephan wrote:
Sergey,

Great thanks! Your proposed solution works for both cases, Jersey and CXF.

Nice; I'm still curious why we see the different matching results with multiple candidates with the original custom regex expressions. I'll investigate a bit later...

There is still work to do for odata4j to be CXF enabled. I will notify
this mailing list when we are done.

sounds good,

Cheers, Sergey

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