2012-09-11 33 views
7

以下stacktrace是我在尝试访问servlet时得到的结果,它似乎从Tomcat管理器上运行正常。Servlet:SEVERE:为servlet分配异常

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 classpath中使用的jar都可以在Tomcat的lib文件夹中找到。 Web应用程序部署时没有任何错误日志,但是当我尝试访问一个servlet时,会发生此异常,并且我将它记录在tomcat日志中。有人能帮忙吗?

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

我不知道为什么会发生这种情况。还有一些其他的Web应用程序,几乎使用相同的库运行良好。希望有人能帮助我这个..

感谢

+0

是否发生较早版本的休息吗? – Tarlog

+1

检查此问题http://stackoverflow.com/questions/4076601/how-do-i-import-the-javax-servlet-api-in-my-eclipse-project –

回答

7

最后,得到了我的错误。这是由eclipse构建引起的问题。由于构建不正确,类文件损坏。我清理了整个项目,重新建造了一个,现在工作正常。感谢您的回复。

3

不知怎的,你缺少servlet-api.jar。它应该位于tomcat\lib文件夹中。

1

java.lang.Error: Unresolved compilation problems:”

说,应用程序不能正常编译。请将servlet-api.jar放在类路径中,而不仅仅是在项目的lib文件夹中,但也将其附加到类路径中。

请确保同一个罐子也在tomcat/common/lib文件夹中可用。

+0

tomcat/common/lib用于Tomcat 5.5或更低版本。由于Tomcat 6是无关紧要的。由日蚀损坏构建造成的 – Tarlog

+0

。解决 – Kris

4

寻找到异常后,你得到了,有些地方你弄丢了jar文件

(servlet的api.jar文件)。它应该在你的Project/WEB-INF/lib文件夹下。我认为它会

如果您的jar文件在上面指定的路径中工作。

0

我也看到了这个异常,其中@Resource注释与两种彼此的脚趾技术(tomcat servlet api 3和spring)相互冲突。

2

如果您遇到此错误“SEVERE:为Servlet分配异常”,再加上“java.lang.InstantiationException”异常,请确保您的servlet类具有公共无参数构造函数,因为servlet容器需要能够实例化它。

如果您的servlet类没有定义明确的非零参数构造函数(通常是这种情况),编译器提供的默认构造函数就足够了。

1

我有同样的问题!花了2个小时寻找解决方案! 这就是它!

的WebContent(下动态Web项目) - > WEB-INF - > LIB(这是空阱 没事) - >右键点击它(LIB) - >构建路径 - >作为源使用 文件夹。

DONE!

+0

也为我工作:)谢谢你的分享。 –

+0

很高兴听到它! –

0

我的案件被使用j个AVA 8 LAMDA表达式在Eclipse中或在独立的Tomcat上运行时,这不是基于Java 8