1

サーブレット クラスを呼び出すこの JSP ページがあります。このサーブレット クラスでは、別の Java クラスを呼び出します。この Java クラスは、「プロファイル」という名前のフォルダを見つけようとします。しかし、ブラウザで JSP ページを実行しようとすると、保持されます。 ClassNotFoundException を返します (間違ったディレクトリを指定したか、JAR ファイルが見つからないことが原因ですか?) 私が尋ねている質問は、そのフォルダの正しいパスを取得するにはどうすればよいですか?

編集:
コードは次のとおりです:
UserClientSearch.jsp:

    <form id="form" method="post" action="UserClientServlet">

UserClientServlet.java 内:

    String value = request.getParameter("screenName");
    request.setAttribute("screenName", value);

    UserClientFilterSpam fs = new UserClientFilterSpam();
    ArrayList<String> content= fs.filterSpam(value);

UserClientFilterSpam.java 内:

        try {
        lds.init("profiles");
    } catch (LangDetectException ex) {
        System.out.println("Error encountered: "+ ex);
    }

スタックトレースは次のとおりです。

SEVERE: Servlet.service() for servlet [servlet.UserClientServlet] in context with path [/MarcusFYPJ] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: com.cybozu.labs.langdetect.LangDetectException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at servlet.UserClientServlet.doPost(UserClientServlet.java:47)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
4

1 に答える 1

1

com.cybozu.labs.langdetect.LangDetectExceptionエラーは、クラスパスに欠落しているという事実によって引き起こされています。

デプロイされた Web アプリケーションに含まれていることを確認する必要があります。サードパーティの JAR ファイルの場合は、Web アプリのWEB-INF/libフォルダーに置くことができます。

于 2012-10-29T02:48:14.263 に答える