2011-06-27 17 views
8

Estoy desarrollando una aplicación web dinámica con Java (Servlets/JSP) en Eclipse. Estoy tratando de usar un JAR externo (estoy usando StringUtils de Apache Commons) y estoy confundido en cuanto a dónde debo poner el contenedor (/lib, /WEB-INF/lib?) Y cómo debo configurar mi ruta de clase (en Eclipse).¿Dónde debo colocar archivos JAR externos al desarrollar una aplicación web?

He intentado poner los frascos en ambos de los lugares antes mencionados, y cargarlos a la ruta de clase haciendo clic Add JAR en las propiedades del proyecto y ambos solución compilarse bien, pero dará un error de ejecución así:

SEVERE: Servlet.service() for servlet UserList threw exception java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils at cs236369.hw5.db.MySqlDbHandler.insert(MySqlDbHandler.java:58) at cs236369.hw5.servlets.UserList.doGet(UserList.java:50) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)

Entonces ... ¿cómo cargo los JAR externos?

Tenga en cuenta que no estoy tan familiarizado con la forma en que se cargan los archivos JAR externos en Java, la máquina virtual o cómo Eclipse lo gestiona todo, por lo que agradecería soluciones detalladas.

Respuesta

21

Se deben colocar en yourapp/WEB-INF/lib. (En eclipse, los estás agregando correctamente). Así que asegúrese de que el frasco esté realmente allí. Tenga en cuenta que si está iniciando la aplicación desde eclipse, debería configurar el ensamblaje de implementación.

El ensamblaje de implementación se configura mediante right click > properties > deployment assembly en eclipse. Allí debe "Agregar" las "entradas de la ruta de compilación de Java"

+0

"debe configurar el ensamblaje de la implementación". - A eso me refería cuando dije que apreciaría explicaciones más detalladas :) No tengo idea de lo que eso significa. ¿Puedes explicar por favor? –

+0

ver la actualización ..... – Bozho

+0

@Bozho si necesito ubicar el jar en el directorio raíz quiero decir fuera de WEB-INF/lib, ¿cómo construirlo? – Achyut

Cuestiones relacionadas