[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[jetty-users] Jetty 8.1 annotations
|
Jetty Version: 8.1.0-RC2
OS : Linux-Ubuntu: 10.10
JVM Version : java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
I am using Jetty in an embedded fashion and am having difficulties with
the annotations for
Servlet 3.0.
My server code is such:
WebAppContext context = new WebAppContext();
context.setConfigurations( new
org.eclipse.jetty.webapp.Configuration[] {
new AnnotationConfiguration(), new WebXmlConfiguration(),
new WebInfConfiguration(), new TagLibConfiguration(),
new PlusConfiguration(), new MetaInfConfiguration(),
new FragmentConfiguration(), new EnvConfiguration() });
context.setDescriptor("webapp/WEB-INF/web.xml");
context.setResourceBase("webapp");
context.setContextPath("/");
context.setParentLoaderPriority(true);
context.setSessionHandler(ServiceManager.getSessionService().getSessionHandler());
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.setHandlers(new Handler[]{context});
server.setHandler(contexts);
I have a servlet defined as such:
@WebServlet(name="commandServlet", urlPatterns = {"/commander"},
asyncSupported=true)
public class OCSServlet extends HttpServlet
{
/**
*
*/
private static final long serialVersionUID = 531143127788829466L;
/* (non-Javadoc)
* @see
javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
AsyncContext ctx = req.startAsync(req, resp);
/** ... do something ... **/
}
}
Note that I have set a breakpoint on the doGet() method.
I have made sure that the appropriate jar files are in the classpath.
However,
when I go to the http://localhost:8080/commander url, my servlet never gets
invoked, i.e. the debugger never stops at my breakpoint and the browser
returns
HTTP ERROR 404
Problem accessing /commander. Reason:
Not Found
Powered by Jetty://
Is there anything specific that I must do for the annotated servlet
classes to be
loaded? Do the class files have to be under the webapp/classes directory?
If I
I specify the context, like
ServletContextHandler ctx = new
ServletContextHandler(ServletContextHandler.SESSIONS);
ctx.addServlet(OCSServlet.class, "/commander");
then things are fine, but of course, this isn't loaded by annotation and
my servlet class
is loaded from my classpath.
Thank you all for the help.
Jeff