Personally, I think that it would be clever to invent <httpj:/putCxfHandlerHere/>
To allow the app to explicitly locale the CXF handler in the middle of the handler chain. > -----Original Message----- > From: Willem Jiang [mailto:[EMAIL PROTECTED] > Sent: Sunday, October 14, 2007 9:30 PM > To: [email protected] > Subject: Re: svn commit: r584484 - in /incubator/cxf/trunk: > rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/ > systests/src/test/java/org/apache/cxf/systest/http_jetty/ > > Hi Glen, > > Please see my comment in the mail. > > Glen Mazza wrote: > > Am Sonntag, den 14.10.2007, 03:04 +0000 schrieb [EMAIL PROTECTED]: > > > >> Author: ningjiang > >> Date: Sat Oct 13 20:04:19 2007 > >> New Revision: 584484 > >> > >> URL: http://svn.apache.org/viewvc?rev=584484&view=rev > >> Log: > >> CXF-1110 Fixed the issue of the Jetty default handler configuration > blocking the CXF endpoint request > >> > >> Modified: > >> incubator/cxf/trunk/rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerE ng > ine.java > >> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_j et > ty/EngineLifecycleTest.java > >> > incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/http_j et > ty/jetty-engine.xml > >> > >> Modified: incubator/cxf/trunk/rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerE ng > ine.java > >> URL: > http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerE ng > ine.java?rev=584484&r1=584483&r2=584484&view=diff > >> > ======================================================================== == > ==== > >> --- incubator/cxf/trunk/rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerE ng > ine.java (original) > >> +++ incubator/cxf/trunk/rt/transports/http- > jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPServerE ng > ine.java Sat Oct 13 20:04:19 2007 > >> @@ -40,6 +40,7 @@ > >> import org.mortbay.jetty.Server; > >> import org.mortbay.jetty.handler.ContextHandler; > >> import org.mortbay.jetty.handler.ContextHandlerCollection; > >> +import org.mortbay.jetty.handler.DefaultHandler; > >> import org.mortbay.jetty.handler.HandlerList; > >> import org.mortbay.jetty.nio.SelectChannelConnector; > >> import org.mortbay.jetty.security.SslSocketConnector; > >> @@ -246,6 +247,7 @@ > >> */ > >> public synchronized void addServant(URL url, JettyHTTPHandler > handler) { > >> if (server == null) { > >> + DefaultHandler defaultHandler = null; > >> // create a new jetty server instance if there is no > server there > >> server = new Server(); > >> if (connector == null) { > >> @@ -255,12 +257,21 @@ > >> if (handlers != null && handlers.size() > 0) { > >> HandlerList handlerList = new HandlerList(); > >> for (Handler h : handlers) { > >> - handlerList.addHandler(h); > >> + // filting the jetty default handler > >> + // which should not be added at this point > >> + if (h instanceof DefaultHandler) { > >> + defaultHandler = (DefaultHandler) h; > >> > > > > (I don't know the system here, but...) What if something extends the > > DefaultHandler--the code above would activate, is that still what you > > would want? Also, should we trap it as an error if there are actually > > two DefaultHandlers (or subclasses of it)? The code above would just > > take the latter one, and ignore the other. > > > > Regards, > > Glen > > > > > Jetty's DefaultHandler should be the last one which be put into the > handler list (It will block the request handler chain, return the error > message). If there are more than two DefaultHandler or the subclasses of > it , we just add the last DefaultHandler to the handler list. > > Willem. > >> + } else { > >> + handlerList.addHandler(h); > >> + } > >> } > >> server.addHandler(handlerList); > >> } > >> contexts = new ContextHandlerCollection(); > >> - server.addHandler(contexts); > >> + server.addHandler(contexts); > >> + if (defaultHandler != null) { > >> + server.addHandler(defaultHandler); > >> + } > >> try { > >> server.start(); > >> AbstractConnector aconn = (AbstractConnector) > connector; > >> > >> > > > > > >
