> On Jul 22, 2015, at 2:39 PM, Ed Welch <e...@edjusted.com> wrote: > > Hi Achim! > > I set out on that path this morning, but it looks like the camel-cxf feature > in camel 2.15.2 has a dependency or a dependent feature with an upper bound > which won't accept jetty 9: > > Error executing command: Unable to resolve root: missing requirement [root] > osgi.identity; osgi.identity=jetty; type=karaf.feature; > version="[7.0.0,9.0.0)" > > I haven't had a chance to look/try a snapshot camel build, or figure out what > exactly is imposing that requirement > > cxf, camel, and jetty features all installed fine, I got that error when > installing camel-cxf feature.
Install CXF 3.1.1 first, then install camel and camel-cxf. You need to make sure you are grabbing 3.1.1 as that’s the first version that supports Jetty9. Dan > > Ed > > > On Wed, 22 Jul 2015 19:33:28 +0200, Achim Nierbeck <bcanh...@googlemail.com> > wrote: > >> Hi Ed, >> >> if you use Karaf4 and/or Pax-Web 4.x you'll get Jetty 9 for free :-) >> >> regards, Achim >> >> >> 2015-07-22 17:24 GMT+02:00 Ed Welch <e...@edjusted.com>: >> >>> >>> configuring CXF to be synchronous definitely removes the stack trace, so >>> it does appear to be an async issue with Jetty. >>> >>> I sent a message to their list and they nudged me to try jetty 9 to see if >>> it's been fixed. However, camel-cxf seems to have a requirement for jetty >>> < 9 and I wasn't able to install it >>> >>> Do you know if current snapshot builds for camel-cxf will work with jetty >>> 9? >>> >>> If not, I will probably sit on this for a while, or see if i can setup >>> straight CXF to do async calls with jetty 9. >>> >>> If the issue exists in 9, I will try to sort through it with the jetty >>> group, if it was fixed in 9, I will leave it up to them to see if they are >>> going to fix 8. >>> >>> This doesn't really seem to be a show stopper for anyone I'm guessing, >>> else it probably would have got more attention. >>> >>> Thanks Claus you do great work! >>> >>> On Wed, 22 Jul 2015 06:18:47 +0200, Claus Ibsen <claus.ib...@gmail.com> >>> wrote: >>> >>>> Hi >>>> >>>> You can configure CXF to be synchronous with ?synchronous=true on the >>>> camel endpoint uri. >>>> >>>> On Tue, Jul 21, 2015 at 7:54 PM, Ed Welch <e...@edjusted.com> wrote: >>>>> Thanks Claus, >>>>> >>>>> You got the wheels turning a little, and I spent some more time with >>> the debugger. >>>>> >>>>> I have found a section of Jetty code of interest, and I'm going to >>> reach out to their mailing list to see what they think. >>>>> >>>>> I documented in a little more detail in the running pax-web issue i >>> opened if you are curious: >>> https://ops4j1.jira.com/browse/PAXWEB-863?focusedCommentId=28843&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-28843 >>>>> >>>>> In summary, it appears the camel-cxf component is doing some ASYNC >>> processing with jetty, and I'm suspicious that Jetty has a conditional that >>> should also be looking for ASYNC request types when checking to see if a >>> request has already been handled by another handler. >>>>> >>>>> The plain cxf example I created does not appear to do any ASYNC >>> operations, which is why it's not seeing this issue. >>>>> >>>>> Will post back for posterity if I make progress with Jetty >>>>> >>>>> On Mon, 20 Jul 2015 21:46:44 +0200, Claus Ibsen <claus.ib...@gmail.com> >>> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> I have seen those errors to on fabric8 v1. It was when using servlet >>>>>> sendError that caused that bug/issue with jetty. Instead you would >>>>>> have to build the reply message normally and set status code to an >>>>>> error code, then it worked - eg do not use the sendError method on the >>>>>> servlet api. >>>>>> >>>>>> I wonder if that is what Jolokia does at >>>>>> BasicAuthenticationHttpContext. And if so maybe that code can be >>>>>> changed. >>>>>> >>>>>> On Sat, Jul 18, 2015 at 8:58 PM, Ed Welch <e...@edjusted.com> wrote: >>>>>>> I've been trying to get to the bottom of this for a couple weeks >>> now, and I'm stuck.... >>>>>>> >>>>>>> I'll try to keep things as short as possible, but basically, I have >>> a soap webservice created with the camel cxf component, running in karaf >>> 3.0.3, java 8 update 25, camel 2.15.2, cxf 3.0.4 (simple sample project >>> linked at the end) >>>>>>> >>>>>>> And if the jolokia-osgi bundle is installed, every call to my >>> webservice results in a rather nasty stack trace in the log file: >>>>>>> >>>>>>> 2015-07-18 14:37:03,379 | WARN | qtp23458725-67 | Response >>> | 71 - org.eclipse.jetty.aggregate.jetty-all-server - >>> 8.1.15.v20140411 | Committed before 401 null >>>>>>> 2015-07-18 14:37:03,379 | WARN | qtp23458725-67 | >>> AbstractHttpConnection | 71 - >>> org.eclipse.jetty.aggregate.jetty-all-server - 8.1.15.v20140411 | /cxf/test/ >>>>>>> java.lang.IllegalStateException: Committed >>>>>>> at >>> org.eclipse.jetty.server.Response.resetBuffer(Response.java:1154)[71:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] >>>>>>> at >>> org.eclipse.jetty.server.Response.sendError(Response.java:317)[71:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] >>>>>>> at >>> org.eclipse.jetty.server.Response.sendError(Response.java:419)[71:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] >>>>>>> at >>> javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:137)[65:org.apache.geronimo.specs.geronimo-servlet_3.0_spec:1.0.0] >>>>>>> at >>> org.jolokia.osgi.security.BasicAuthenticationHttpContext.handleSecurity(BasicAuthenticationHttpContext.java:49)[144:org.jolokia.osgi:1.3.1] >>>>>>> at >>> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:68)[80:org.ops4j.pax.web.pax-web-jetty:3.1.4] >>>>>>> at >>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)[71:org.eclipse.jetty.aggregate.jetty-all-server:8.1.15.v20140411] >>>>>>> ... >>>>>>> >>>>>>> I abbreviated the trace, the full stack can be found in the jira >>> link further down, but you can see in the stack it's trying to call the >>> org.jolokia.osgi.security.BasicAuthenticationHttpContext, which is bizzare >>>>>>> >>>>>>> Ok, so first thing to mention, the webservice call works fine, and >>> works fine every time, the error in the logs occurs after the client >>> receives a successful response >>>>>>> >>>>>>> At first I thought this was an issue with pax-web, so I opened a >>> ticket over there: >>>>>>> >>>>>>> https://ops4j1.jira.com/browse/PAXWEB-863 >>>>>>> >>>>>>> Achim very nicely spent some time looking into this, and has not >>> been able to find any issues with the pax-web code. >>>>>>> >>>>>>> So out of curiosity, I setup a straight CXF soap webservice in the >>> same environment, and it works great, no errors even when jolokia is >>> installed. >>>>>>> >>>>>>> This has lead me over to camel, or how camel is using CXF >>>>>>> >>>>>>> I've spent a few hours with the debugger but I'm really not getting >>> anywhere, everything looks to me like jetty is processing the call through >>> camel/cxf as it should, and then a second process is made to through the >>> context jolokia registers when its installed, and this results in the error >>> (because the jolokia context looks for the Authorization header, doesn't >>> see it, throws an exception back to the client, but the connection to the >>> client is already closed because it was handled and closed in the >>> successful camel call) >>>>>>> >>>>>>> But this second call stack is mostly jetty and some pax-web >>> classes. So it doesn't look like camel code is directly causing this. >>>>>>> >>>>>>> Some of my thoughts are how the webservice is registered with cxf >>> and in turn with pax/jetty in the osgi environment, or maybe there is some >>> kind of missing "handled" notification to jetty to keep it from sending he >>> request to more contexts? I dunno if that second thing is real or not, >>> just thinking outloud. >>>>>>> >>>>>>> I made a sample project to make this easier to test: >>> https://github.com/erwelch/paxweb-863 >>>>>>> >>>>>>> I'm afraid I'm at a loss for how to further debug this, I'm not >>> convinced this is a camel issue, but since it's the case I can only >>> re-create this using camel, I'm hoping someone can help! >>>>>>> >>>>>>> Thanks, >>>>>>> Ed >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Claus Ibsen >>>>>> ----------------- >>>>>> http://davsclaus.com @davsclaus >>>>>> Camel in Action 2nd edition: http://www.manning.com/ibsen2 >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> ----------------- >>>> http://davsclaus.com @davsclaus >>>> Camel in Action 2nd edition: http://www.manning.com/ibsen2 >>> >>> >>> >> >> >> -- >> >> Apache Member >> Apache Karaf <http://karaf.apache.org/> Committer & PMC >> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & >> Project Lead >> blog <http://notizblog.nierbeck.de/> >> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >> >> Software Architect / Project Manager / Scrum Master > > -- Daniel Kulp dk...@apache.org - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com