9

次のスタック トレースは、Tomcat マネージャーから正常に実行されているように見えるサーブレットにアクセスしようとしたときに得られるものです。

11 Sep, 2012 11:50:12 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet LoginServlet as unavailable
11 Sep, 2012 11:50:12 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet LoginServlet
java.lang.Error: Unresolved compilation problems: 
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    HttpServlet cannot be resolved to a type
    ServletConfig cannot be resolved to a type
    ServletException cannot be resolved to a type
    HttpServlet cannot be resolved to a type
    ServletContext cannot be resolved to a type
    ServletException cannot be resolved to a type
    HttpServletRequest cannot be resolved to a type
    HttpServletResponse cannot be resolved to a type
    ServletException cannot be resolved to a type
    request cannot be resolved
    The method getLoggedin() from the type LoginHandler refers to the missing type ServletException
    The method destroy() of type LoginManager must override or implement a supertype method
    HttpServlet cannot be resolved to a type

    at com.login.servlets.LoginManager.<init>(LoginManager.java:5)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1149)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    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:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
    at java.lang.Thread.run(Unknown Source)
11 Sep, 2012 12:05:12 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Log4JInitServlet as unavailable
11 Sep, 2012 12:05:12 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /logintest threw load() exception
java.lang.Error: Unresolved compilation problems: 
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import javax.servlet cannot be resolved
    The import org.apache cannot be resolved
    The import org.apache cannot be resolved
    HttpServlet cannot be resolved to a type
    ServletConfig cannot be resolved to a type
    ServletException cannot be resolved to a type
    ServletContext cannot be resolved to a type
    BasicConfigurator cannot be resolved
    PropertyConfigurator cannot be resolved
    BasicConfigurator cannot be resolved

    at com.logger.WebLogger.<init>(WebLogger.java:5)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1149)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3461)
    at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:943)
    at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:557)
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:121)
    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.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
    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:293)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
    at java.lang.Thread.run(Unknown Source)

Eclipse クラスパス内で使用されたすべての jar は、Tomcat lib フォルダーで利用できます。webapp はエラー ログなしでデプロイされていますが、1 つのサーブレットにアクセスしようとすると、この例外が発生し、Tomcat ログに記録されます。誰でもこれを手伝うことができますか?

The package names are proper inside 'classes', also, the web.xml is proper. 

なぜこれが起こるのかわかりません。正常に実行されている同じライブラリをほぼ使用する他の特定の webapps があります。誰かがこれで私を助けることができると期待しています..

ありがとう

4

12 に答える 12

12

最後に、間違いを犯しました。これは、Eclipse ビルドによって引き起こされた問題でした。ビルドが適切でなかったため、クラス ファイルが破損していました。プロジェクト全体をクリーンアップし、新しいビルドを作成しましたが、今では正常に動作しています。返信ありがとうございます。

于 2012-09-11T11:12:11.183 に答える
4

例外を調べた後、jarファイルを置き忘れた場所がいくつかありました

(サーブレット-api.jar)。Project/WEB-INF/lib フォルダーの下にある必要があります。すると思います

jar ファイルが上記で指定したパスにある場合に機能します。

于 2012-09-11T09:18:38.380 に答える
3

どういうわけかあなたは欠けていservlet-api.jarます。フォルダーに配置する必要がありtomcat\libます。

于 2012-09-11T09:12:10.137 に答える
2

私は同じ問題を抱えていました!解決策を探すのに2時間費やしました!そして、ここにあります!

WebContent(動的Webプロジェクトの下)-> WEB-INF-> lib(空です-大丈夫です)->それを右クリック(lib)->ビルドパス->ソースフォルダーとして使用。

終わり!

于 2016-01-30T14:05:33.100 に答える
1

" java.lang.Error: Unresolved compilation problems: "

アプリケーションが正しくコンパイルされていないことを示しています。servlet-api.jarプロジェクトの lib フォルダーだけでなく、クラスパスに追加してください。

tomcat/common/lib同じ jar がフォルダーでも使用できることを確認してください。

于 2012-09-11T09:12:15.890 に答える
0

また、@Resource アノテーションが 2 つのテクノロジー (Tomcat サーブレット API 3 と spring) を互いに踏みにじることで競合を引き起こしたこの例外も見ました。

于 2013-04-16T22:23:34.167 に答える
0

私の場合、junit テスト内で Lambda 式を使用していたときに発生しました。テストからコメントした後、サーバーは適切な API 応答を返しました。

于 2019-10-14T23:03:21.297 に答える
0

同様の例外が発生
しましたJava 8からJava 11に移行しているときに、次のエラーが発生しました

例外 org.apache.catalina.core.ApplicationContext.log サーブレット [health-servlet] の Servlet.init() が例外 java.lang.IllegalArgumentException をスローしました

エラーを修正するために、pom でバージョンをアップグレードしました

<jersey.version>2.23.2</jersey.version><!-- Remove this  -->
<jersey.version>2.30.1</jersey.version><!-- Add this  -->

web.xml に次のエントリがありました

    <servlet>
    <servlet-name>health-servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.xyz.platform.registry.service.ServiceRegistryApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
于 2020-05-07T05:42:37.747 に答える