次のスタックトレースは、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アプリケーションがあり、ほぼ同じライブラリを使用して正常に動作しています。誰かがこれを手伝ってくれると期待しています。
ありがとう
最後に、間違いを犯した。これは、Eclipseビルドが原因の問題でした。ビルドが適切ではなかったため、クラスファイルが破損しています。私はプロジェクト全体をクリーンアップし、新しいビルドを取得しましたが、現在は正常に機能しています。お返事ありがとうございます。
例外を調べた後、jarファイルを誤って配置した場所が見つかりました
(servlet-api.jar)。 Project/WEB-INF/libフォルダーの下にあります。私はそうなると思います
jarファイルが上記で指定したパスにある場合に機能します。
どういうわけかservlet-api.jar
がありません。 Tomcat\lib
フォルダにあります。
私は同じ問題を抱えていました! 2時間かけてソリューションを探しました。そしてここにあります!
WebContent(Dynamic Web Projectの下)-> WEB-INF-> lib(それは空です-大丈夫です)->右クリック(lib)-> Build Path-> Use as Source Folder。
できた!
このエラー「SEVERE:Allocate exception for servlet」と「Java.lang.InstantiationException」例外が発生した場合は、サーブレットコンテナがインスタンス化できるようにする必要があるため、サーブレットクラスに引数なしのパブリックコンストラクタがあることを確認してください。
サーブレットクラスに明示的なゼロ以外の引数コンストラクターが定義されていない場合(通常そうです)、コンパイラーが提供するデフォルトのコンストラクターで十分です。
「Java.lang.Error: Unresolved compilation problems
:」
アプリケーションが正しくコンパイルされていないと述べています。プロジェクトのlibフォルダーだけでなく、servlet-api.jar
もクラスパスに配置してください。また、クラスパスに添付してください。
同じjarがTomcat/common/lib
フォルダでも利用できることを確認してください。
また、@ Resourceアノテーションが2つのテクノロジー(Tomcatサーブレットapi 3とSpring)を互いに踏みつけて競合する原因となったこの例外も見ました。
私のケースでは、J =java 8ラムダ式を、Java 8
私にとっては、junitテストでLambda式を使用していたときに起こりました。テストからコメントした後、サーバーは適切なAPI応答を返しました。