PDA

View Full Version : [J2EE 6] Utilizzo delle Servlet 3.0 (tramite annotations) su Tomcat 7


Player1
11-02-2012, 10:09
Sto facendo delle prove di utilizzo delle servlet 3.0 su web server Apache Tomcat 7.0.25 ma non riesco a farle funzionare.
Questo è il codice della servlet:

package servlets;
import ejbs.FirstEJB;
import java.io.*;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet( name="FirstServlet", value={"/servlet"})

public class FirstServlet extends HttpServlet {
@EJB FirstEJB firstEJB;

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

[...]


Se la deployo e provo ad eseguirla Tomcat mi da la seguente eccezione:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class servlets.FirstServlet
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)

root cause

javax.naming.NameNotFoundException: Name servlets.FirstServlet is not bound in this Context
org.apache.naming.NamingContext.lookup(NamingContext.java:820)
org.apache.naming.NamingContext.lookup(NamingContext.java:168)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
java.lang.Thread.run(Thread.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.25 logs.
Apache Tomcat/7.0.25

Vorrei specificare che NON ho creato nessun file web.xml visto che trattandosi di Servlet 3.0 utilizzo il meccanismo delle annotation (il test che sto facendo riguarda proprio questo).

Cosa potrebbe essere che causa l'eccezione?
Forse devo fare qualcosa per abilitare J2EE 6 su tomcat 7?
Ah dimenticavo, Tomcat 7 è a 64bit, potrebbe essere questo il problema? Magari una incompatibilità con qualche libreria installata sul mio pc?

Grazie!