web-dev-qa-db-ja.com

サーブレット:重大:サーブレットに例外を割り当てます

次のスタックトレースは、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. 

なぜこれが起こるのか私にはわかりません。他にもいくつかのWebアプリケーションがあり、ほぼ同じライブラリを使用して正常に動作しています。誰かがこれを手伝ってくれると期待しています。

ありがとう

9
Kris

最後に、間違いを犯した。これは、Eclipseビルドが原因の問題でした。ビルドが適切ではなかったため、クラスファイルが破損しています。私はプロジェクト全体をクリーンアップし、新しいビルドを取得しましたが、現在は正常に機能しています。お返事ありがとうございます。

11
Kris

例外を調べた後、jarファイルを誤って配置した場所が見つかりました

(servlet-api.jar)。 Project/WEB-INF/libフォルダーの下にあります。私はそうなると思います

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

4
Srinivas B

どういうわけかservlet-api.jarがありません。 Tomcat\libフォルダにあります。

3
Tarlog

私は同じ問題を抱えていました! 2時間かけてソリューションを探しました。そしてここにあります!

WebContent(Dynamic Web Projectの下)-> WEB-INF-> lib(それは空です-大丈夫です)->右クリック(lib)-> Build Path-> Use as Source Folder。

できた!

2
Vitali Kuzmin

このエラー「SEVERE:Allocate exception for servlet」と「Java.lang.InstantiationException」例外が発生した場合は、サーブレットコンテナがインスタンス化できるようにする必要があるため、サーブレットクラスに引数なしのパブリックコンストラクタがあることを確認してください。

サーブレットクラスに明示的なゼロ以外の引数コンストラクターが定義されていない場合(通常そうです)、コンパイラーが提供するデフォルトのコンストラクターで十分です。

2
ushah

Java.lang.Error: Unresolved compilation problems:」

アプリケーションが正しくコンパイルされていないと述べています。プロジェクトのlibフォルダーだけでなく、servlet-api.jarもクラスパスに配置してください。また、クラスパスに添付してください。

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

1
Ratnakar.class

また、@ Resourceアノテーションが2つのテクノロジー(Tomcatサーブレットapi 3とSpring)を互いに踏みつけて競合する原因となったこの例外も見ました。

0

私のケースでは、J =java 8ラムダ式を、Java 8

0
Youans

私にとっては、junitテストでLambda式を使用していたときに起こりました。テストからコメントした後、サーバーは適切なAPI応答を返しました。

0
Yash Bansal