Generally speaking, I bet Jetty won't do the scanning for annotations for
you unless you explicitly advise it to.

I came across a class org.eclipse.jetty.annotations.AnnotationConfiguration
which might be a good starting point for further research.

On Mon, Feb 13, 2012 at 2:02 PM, <[email protected]> wrote:

> 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
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to