EclipseでJava(Servlets/JSP)を使用した動的Webアプリケーションを開発しています。私は外部のJARを使用しようとしています(私はApache CommonsのStringUtils
を使用しています)、私はどこにjarファイル(/lib
、/WEB-INF/lib
?)を置くべきなのか混乱しています。 Eclipse)。Webアプリケーションを開発する際に、どこに外部JARファイルを置くべきですか?
私は、前述の場所の両方にJARを入れて、プロジェクトのプロパティでAdd JAR
をクリックすることで、クラスパスにそれらをロードしようとしたとの両方のソリューションは罰金コンパイルが、そうのようなランタイムエラーを与える:
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)
だから、どうすれば外部のJARをロードできますか?
外部JARがJava、VM、またはEclipseでどのように管理されているかに精通していないので、詳細な解決方法をお考えください。
「デプロイメントの組み立てを構成する必要があります。 - それは、私がより詳細な説明に感謝すると言ったときに私が意味していたものです。私はそれがどういう意味か分かりません。どうか説明できますか? –
更新を見る..... – Bozho
@Bozhoルートディレクトリにjarファイルを置く必要がある場合は、WEB-INF/libの外側にビルドする方法を教えてください。 – Achyut