Tengo un servlet que deseo implementar programáticamente utilizando Jetty. El servlet usa Spring y sus puntos web.xml en el archivo XML del contexto Spring como es de esperar.Despliegue de un servlet mediante programación con Jetty
Por el momento, sólo estoy tratando el código de ejemplo a partir de los documentos Jetty pero con mi propio servlet:
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new BatchReceiver()),"/br/*");
server.start();
server.join();
Esto da lugar a la siguiente excepción:
2012-05-24 14:43:20.190:INFO:oejs.Server:jetty-8.1.3.v20120416
2012-05-24 14:43:20.266:WARN:/:unavailable
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
at org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:84)
at com.spiffymap.sealog.server.servlet.BatchReceiver.init(BatchReceiver.java:126)
at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)
at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:778)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
at org.eclipse.jetty.server.Server.doStart(Server.java:262)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at com.spiffymap.sealog.server.servlet.TestBatchReceiver.main(TestBatchReceiver.java:26)
2012-05-24 14:43:20.335:INFO:oejs.AbstractConnector:Started [email protected]:8080
¿Cómo puedo configurar mi servlet para que Jetty sepa dónde están web.xml y Spring context?
¡Cualquier ayuda sería realmente apreciada!
EDITAR
Así que, al parecer, no necesito un web.xml pero hacer necesidad de señalar embarcadero a mi contexto primavera. He intentado algo lo siguiente:
context.setInitParameter("contextConfigLocation", "classpath*:**/*Context.xml");
Pero no funciona (sigue produciendo la misma excepción). También intenté configurar "contextConfigLocation" en ServletHolder en vano.
en lugar de usar testContext.xml, podría haber usado 'context.setInitParameter (" contextConfigLocation ", AppConfig.class.getName());' –