So, I'm in a webapp, and there's a servlet.

The base URL or the webapp is http://localhost:8080/rex-ws, and the URI
mapping in the servlet is to /service*

I suspect that the JAX-WS pattern is to treat "doc" as resulting in:

http://localhost:8080/rex-ws/servicedoc

If so, you'd want to fix the service list and everything else to work with
that.





On Mon, Nov 2, 2009 at 4:37 PM, Sergey Beryozkin <[email protected]>wrote:

> Ok, it has to be fixed, especially given that JAXRS @Path values can
> have no leading slashes, so treating "doc" as "/doc" would make sense...
>
>
> Thanks, Sergey
>
> -----Original Message-----
> From: Benson Margulies [mailto:[email protected]]
> Sent: 02 November 2009 21:31
> To: [email protected]
> Subject: Re: WADL, WADL, QUACK! (explosion requesting WADL from JAX-RS
> service)
>
> I can give you a recipe. In the following, I had left the / off of the
> address. The value was just "doc". Nothing complained until I clicked on
> the
> WADL link in the service list, and that gave me the stack trace.
>
>  <jaxrs:server id="docService" address="/doc">
>    <jaxrs:serviceBeans>
>      <ref bean="docServiceImpl" />
>    </jaxrs:serviceBeans>
>    <jaxrs:providers>
>      <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
>    </jaxrs:providers>
>  </jaxrs:server>
>
>
> On Mon, Nov 2, 2009 at 3:51 PM, Sergey Beryozkin
> <[email protected]>wrote:
>
> > Hi Benson
> >
> > I can see a very interesting subject and a long trace but very little
> > info which can help, please be more specific.
> >
> > So I'm assuming from your previous post URIs like
> >
> >
> http://localhost:9090/rex-ws/service/configuration/regexp-set/default-ar
> >
> a/replace-contents/xml<http://localhost:9090/rex-ws/service/configuratio
> n/regexp-set/default-ar%0Aa/replace-contents/xml<http://localhost:9090/rex-ws/service/configuratio%0An/regexp-set/default-ar%0Aa/replace-contents/xml>
> >
> >
> > can be used
> >
> > so I have no idea why
> >
> > /rex-ws/service/doc
> >
> > is even being used.
> >
> > So it is
> >
> > Caused by: java.lang.IllegalArgumentException
> >        at java.net.URI.create(URI.java:842)
> >        at
> > org.apache.cxf.jaxrs.utils.HttpUtils.toAbsoluteUri(HttpUtils.java:142)
> >        at
> > org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(UriInfoImpl.java:79)
> >
> > but I can't test it.
> > Let me know please :
> > - how do you attempt to get a WADL instance, which URI ?
> > - jaxrs:server/@address
> > - root resource @Path value
> > - cxf servlet uri pattern
> > - web app context
> >
> >
> >
> > Thanks, Sergey
> >
> > -----Original Message-----
> > From: Benson Margulies [mailto:[email protected]]
> > Sent: 02 November 2009 20:39
> > To: CXF Users
> > Subject: WADL, WADL, QUACK! (explosion requesting WADL from JAX-RS
> > service)
> >
> > HTTP ERROR 500
> >
> > Problem accessing /rex-ws/service/doc. Reason:
> >
> >    org.apache.cxf.interceptor.Fault
> >
> > Caused by:
> >
> > java.lang.RuntimeException: org.apache.cxf.interceptor.Fault
> >        at
> >
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage
> > (AbstractFaultChainInitiatorObserver.java:99)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:284)
> >        at
> >
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
> > onObserver.java:104)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
> > ation.java:98)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
> > vletController.java:392)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
> > ler.java:170)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
> > rvlet.java:142)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPS
> > ervlet.java:50)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTT
> > PServlet.java:101)
> >        at
> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >        at
> >
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> >        at
> >
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2
> > 16)
> >        at
> >
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >        at
> > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler
> > Collection.java:230)
> >        at
> >
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav
> > a:114)
> >        at
> >
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >        at org.mortbay.jetty.Server.handle(Server.java:326)
> >        at
> >
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >        at
> >
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne
> > ction.java:915)
> >        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> >        at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >        at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >        at
> >
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> > 409)
> >        at
> >
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java
> > :582)
> > Caused by: org.apache.cxf.interceptor.Fault
> >        at
> >
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage
> > (AbstractFaultChainInitiatorObserver.java:66)
> >        ... 26 more
> > Caused by: java.lang.IllegalArgumentException
> >        at java.net.URI.create(URI.java:842)
> >        at
> > org.apache.cxf.jaxrs.utils.HttpUtils.toAbsoluteUri(HttpUtils.java:142)
> >        at
> > org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(UriInfoImpl.java:79)
> >        at
> >
> org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleRequest(WadlGenerato
> > r.java:111)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRS
> > InInterceptor.java:157)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSI
> > nInterceptor.java:63)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:236)
> >        ... 25 more
> > Caused by: java.net.URISyntaxException: Malformed escape pair at index
> > 22: http://0:0:0:0:0:0:0:1%0:8080doc
> >        at java.net.URI$Parser.fail(URI.java:2809)
> >        at java.net.URI$Parser.scanEscape(URI.java:2939)
> >        at java.net.URI$Parser.scan(URI.java:2962)
> >        at java.net.URI$Parser.parseAuthority(URI.java:3103)
> >        at java.net.URI$Parser.parseHierarchical(URI.java:3058)
> >        at java.net.URI$Parser.parse(URI.java:3014)
> >        at java.net.URI.<init>(URI.java:578)
> >        at java.net.URI.create(URI.java:840)
> >        ... 31 more
> >
> > Caused by:
> >
> > org.apache.cxf.interceptor.Fault
> >        at
> >
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage
> > (AbstractFaultChainInitiatorObserver.java:66)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:284)
> >        at
> >
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
> > onObserver.java:104)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
> > ation.java:98)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
> > vletController.java:392)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
> > ler.java:170)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
> > rvlet.java:142)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPS
> > ervlet.java:50)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTT
> > PServlet.java:101)
> >        at
> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >        at
> >
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> >        at
> >
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2
> > 16)
> >        at
> >
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >        at
> > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler
> > Collection.java:230)
> >        at
> >
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav
> > a:114)
> >        at
> >
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >        at org.mortbay.jetty.Server.handle(Server.java:326)
> >        at
> >
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >        at
> >
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne
> > ction.java:915)
> >        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> >        at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >        at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >        at
> >
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> > 409)
> >        at
> >
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java
> > :582)
> > Caused by: java.lang.IllegalArgumentException
> >        at java.net.URI.create(URI.java:842)
> >        at
> > org.apache.cxf.jaxrs.utils.HttpUtils.toAbsoluteUri(HttpUtils.java:142)
> >        at
> > org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(UriInfoImpl.java:79)
> >        at
> >
> org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleRequest(WadlGenerato
> > r.java:111)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRS
> > InInterceptor.java:157)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSI
> > nInterceptor.java:63)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:236)
> >        ... 25 more
> > Caused by: java.net.URISyntaxException: Malformed escape pair at index
> > 22: http://0:0:0:0:0:0:0:1%0:8080doc
> >        at java.net.URI$Parser.fail(URI.java:2809)
> >        at java.net.URI$Parser.scanEscape(URI.java:2939)
> >        at java.net.URI$Parser.scan(URI.java:2962)
> >        at java.net.URI$Parser.parseAuthority(URI.java:3103)
> >        at java.net.URI$Parser.parseHierarchical(URI.java:3058)
> >        at java.net.URI$Parser.parse(URI.java:3014)
> >        at java.net.URI.<init>(URI.java:578)
> >        at java.net.URI.create(URI.java:840)
> >        ... 31 more
> >
> > Caused by:
> >
> > java.lang.IllegalArgumentException
> >        at java.net.URI.create(URI.java:842)
> >        at
> > org.apache.cxf.jaxrs.utils.HttpUtils.toAbsoluteUri(HttpUtils.java:142)
> >        at
> > org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(UriInfoImpl.java:79)
> >        at
> >
> org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleRequest(WadlGenerato
> > r.java:111)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRS
> > InInterceptor.java:157)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSI
> > nInterceptor.java:63)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:236)
> >        at
> >
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
> > onObserver.java:104)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
> > ation.java:98)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
> > vletController.java:392)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
> > ler.java:170)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
> > rvlet.java:142)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPS
> > ervlet.java:50)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTT
> > PServlet.java:101)
> >        at
> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >        at
> >
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> >        at
> >
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2
> > 16)
> >        at
> >
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >        at
> > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler
> > Collection.java:230)
> >        at
> >
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav
> > a:114)
> >        at
> >
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >        at org.mortbay.jetty.Server.handle(Server.java:326)
> >        at
> >
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >        at
> >
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne
> > ction.java:915)
> >        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> >        at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >        at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >        at
> >
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> > 409)
> >        at
> >
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java
> > :582)
> > Caused by: java.net.URISyntaxException: Malformed escape pair at index
> > 22: http://0:0:0:0:0:0:0:1%0:8080doc
> >        at java.net.URI$Parser.fail(URI.java:2809)
> >        at java.net.URI$Parser.scanEscape(URI.java:2939)
> >        at java.net.URI$Parser.scan(URI.java:2962)
> >        at java.net.URI$Parser.parseAuthority(URI.java:3103)
> >        at java.net.URI$Parser.parseHierarchical(URI.java:3058)
> >        at java.net.URI$Parser.parse(URI.java:3014)
> >        at java.net.URI.<init>(URI.java:578)
> >        at java.net.URI.create(URI.java:840)
> >        ... 31 more
> >
> > Caused by:
> >
> > java.net.URISyntaxException: Malformed escape pair at index 22:
> > http://0:0:0:0:0:0:0:1%0:8080doc
> >        at java.net.URI$Parser.fail(URI.java:2809)
> >        at java.net.URI$Parser.scanEscape(URI.java:2939)
> >        at java.net.URI$Parser.scan(URI.java:2962)
> >        at java.net.URI$Parser.parseAuthority(URI.java:3103)
> >        at java.net.URI$Parser.parseHierarchical(URI.java:3058)
> >        at java.net.URI$Parser.parse(URI.java:3014)
> >        at java.net.URI.<init>(URI.java:578)
> >        at java.net.URI.create(URI.java:840)
> >        at
> > org.apache.cxf.jaxrs.utils.HttpUtils.toAbsoluteUri(HttpUtils.java:142)
> >        at
> > org.apache.cxf.jaxrs.impl.UriInfoImpl.getBaseUri(UriInfoImpl.java:79)
> >        at
> >
> org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleRequest(WadlGenerato
> > r.java:111)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRS
> > InInterceptor.java:157)
> >        at
> >
> org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSI
> > nInterceptor.java:63)
> >        at
> >
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
> > hain.java:236)
> >        at
> >
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiati
> > onObserver.java:104)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestin
> > ation.java:98)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ser
> > vletController.java:392)
> >        at
> >
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
> > ler.java:170)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
> > rvlet.java:142)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPS
> > ervlet.java:50)
> >        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> >        at
> >
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTT
> > PServlet.java:101)
> >        at
> > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> >        at
> >
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> >        at
> >
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:2
> > 16)
> >        at
> >
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >        at
> > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
> >        at
> >
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandler
> > Collection.java:230)
> >        at
> >
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.jav
> > a:114)
> >        at
> >
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >        at org.mortbay.jetty.Server.handle(Server.java:326)
> >        at
> >
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:536)
> >        at
> >
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConne
> > ction.java:915)
> >        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> >        at
> > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >        at
> > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405)
> >        at
> >
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
> > 409)
> >        at
> >
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java
> > :582)
> >
> > ------------------------------
> > *Powered by Jetty://*
> >
>

Reply via email to