Am 08.05.2015 um 01:23 schrieb Jan Bartel: > The thing is, you haven't really provided enough information for > anyone to determine exactly what is going wrong for you.
sorry. I thought the question Joakim asked me was enough as clarification. > Maybe this will help you. I've modified one of the standard embedded > examples (original here: > https://github.com/eclipse/jetty.project/blob/master/examples/embedded/src/main/java/org/eclipse/jetty/embedded/OneServletContext.java) > to show what happens to the configuration of the ServletHandler at > various stages: > > Server server = new Server(8080); > [...] > As you can see, if there is no servlet mapped to "/", then the > ServletHandler will instantiate a ServletHandler.Default404Servlet. > If, however, you provide a mapping yourself, that is used instead. > Maybe you can use the above to verify against your setup. Thanks for that. The difference to my application is that the main server configuration comes from the config-XML-file and the e.g. AS2Server is accessing the server after its startup and tries to add its own servlet. So the code looks something like this: Server hs = null; hs = Server.getServer(_serverName); if (hs == null){ logSystemError("HTTP-Server with name '" + _serverName + "' not found"); return; } Handler handler = hs.getChildHandlerByClass(ContextHandlerCollection.class); if (handler == null){ logSystemError("Unable to install servlet. The server contains no ContextHandlerCollection"); return; } ContextHandlerCollection coll = (ContextHandlerCollection) handler; Handler[] schs = hs.getChildHandlersByClass(ServletContextHandler.class); if (schs == null){ schs = new Handler[0]; } ServletContextHandler hc = null; for (int i = 0; i < schs.length; i++){ hc = (ServletContextHandler) schs[i]; if (hc.getContextPath().equals(_contextName)){ break; } } if (hc == null){ hc = new ServletContextHandler(ServletContextHandler.SESSIONS); hc.setContextPath(_contextName); coll.addHandler(hc); } logSystemMessage("Adding servlet to context"); ServletHolder holder = new ServletHolder(); holder.setClassName(AS2MessageReceiveServlet.class.getName()); holder.setName("AS2ReceiveServlet"); hc.addServlet(holder, _pathSpec); try{ Server.removeDefault404Servlet(hc.getServletHandler()); } catch(ServletException se){ logSystemError("unable to remove default servlet", se); } Your example needs a stopped server where in my case the server is already started. In that case the Default404Servlet is already added before I'm able to add my own. Before I ended up with the code above (especially the call of removeDefault404Servlet at the end) I tried a couple of things but always ended up in a dead end. Cheers, Lothar _______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
