严重:为servlet helloworld Apache-Tomcat 7.0.23分配异常 [英] SEVERE: Allocate exception for servlet helloworld Apache-Tomcat 7.0.23

查看:162
本文介绍了严重:为servlet helloworld Apache-Tomcat 7.0.23分配异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我一直在尝试运行一个"Hello World" Servlet应用程序两周,我在网络上尝试了许多示例,现在求助于Safari书中找到的一个示例,唯一的区别是我已经为了简化问题,删除了程序包名称及其后续目录结构:
Apache Tomcat 7
作者:Aleksa Vukotic;詹姆斯·古德威尔
发行人:Apress

它只是归结为"Hello World" Servlet失败,并阻止了我为面试做更多的事情.我确实是从Eclipse开始的,但是正如您所说的那样,它的清洁程序可以使用命令行,当我最初出现问题时就可以使用它,因为我最初以为是构建问题/部署冲突,可能是这样,但是我对此一无所知怎么了我也运行最新的tomcat 7和最新的jdk/jre.我仅使用以下命令行构建:

I have been trying to get a ''Hello World'' Servlet application running for two weeks I have tried many examples on the web and now resorted to one found at Safari-books, the only difference is I''ve removed the package name and its subsequent directory structure in order simplify the problem:
Apache Tomcat 7
By: Aleksa Vukotic; James Goodwill
Publisher: Apress

It just comes down to a ''Hello World'' Servlet which fails and is preventing me from doing something more meatier for the interview. I did start out with Eclipse but as you say its cleaner to use the command line which I did when my problems started occurring as I initially thought it was a build issue/deployment conflict, which it probably is but I''m clueless as to what though. I too run the latest tomcat 7 and latest jdk/jre. I build with simply the command line as:

javac HelloWorldServlet.java -cp CATALINA_HOME/lib/servlet-api.jar



我将CLASSPATH设置为.; c:\ apache-tomcat-7.0.23-windows-x86 \ apache-tomcat-7.0.23 \ servlet-api.jar

我复制HelloWorldServlet.java和复制HelloWorldServlet.class,它构建的很好.

我的HelloWorldServlet.java:



I set my CLASSPATH to .;c:\apache-tomcat-7.0.23-windows-x86\apache-tomcat-7.0.23\servlet-api.jar

It builds fine I copy the HelloWorldServlet.java and I copy the HelloWorldServlet.class

My HelloWorldServlet.java:

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class HelloWorldServlet extends HttpServlet { 
 
    public void doGet(HttpServletRequest request, HttpServletResponse response)   
    throws IOException, ServletException 
    { 
        response.setContentType("text/html");                                     
        PrintWriter out = response.getWriter();                                    
        out.println("<html>"); 
        out.println("<head>"); 
        out.println("<title>Hello World!</title>"); 
        out.println("</head>"); 
        out.println("<body>"); 
        out.println("<h1>Hello World!</h1>"); 
        out.println("</body>"); 
        out.println("</html>"); 
    } 
} 



我的web.xml:



My web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
 
    <display-name>Chapter 2</display-name> 
    <description>Apress demo</description> 
 
    <servlet>                                                          
        <servlet-name>helloworld</servlet-name> 
        <servlet-class> 
            HelloWorldServlet 
   </servlet-class> 
    </servlet> 
 
    <servlet-mapping>                                                  
        <servlet-name>helloworld</servlet-name> 
        <url-pattern>/hello.html</url-pattern> 
    </servlet-mapping> 
 
</web-app> 



我的目录结构如下:



My Directory structure looks like:

apache-tomcat-7.0.23-windows-x86/
    apache-tomcat-7.0.23/
       bin/
       conf/
       lib/
       logs/
       temp/
       webapps/
           apress/
               jsps/
               WEB-INF/
                   web.xml
                   Classes/
                      HelloWorldServlet.class
                    lib/
        work/




我将CATALINA_HOME设置为c:\ apache-tomcat-7.0.23-windows-x86 \ apache-tomcat-7.0.23
我以CATALINA_HOME \ bin \ catalina start的形式启动tomcat

日志似乎表明xml文件正常,如下所示:

2012年1月9日,上午12:40:51 org.apache.catalina.startup.HostConfig deployDirectory
信息:部署Web应用程序目录C:\ apache-tomcat-7.0.23-windows-x86 \ apache-tomcat-7.0.23 \ webapps \ apress
INFO:服务器在1017毫秒内启动

在Google chrome中,我输入:




I set CATALINA_HOME to c:\apache-tomcat-7.0.23-windows-x86\apache-tomcat-7.0.23
I start tomcat as CATALINA_HOME\bin\catalina start

The logs seem to suggest that the xml files are ok as it displays:

Jan 09, 2012 12:40:51 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory C:\apache-tomcat-7.0.23-windows-x86\apache-tomcat-7.0.23\webapps\apress
INFO: Server startup in 1017 ms

In Google chrome I type:

http://localhost:8080/apress/hello.html



我在浏览器中得到以下输出:



I get the following output in my browser:

HTTP Status 500 -HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class HelloWorldServlet
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
	org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1815)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	java.lang.Thread.run(Thread.java:722)
root cause
java.lang.ClassNotFoundException: HelloWorldServlet
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
	org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1815)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	java.lang.Thread.run(Thread.java:722)


note注意根本原因的完整堆栈跟踪可在Apache Tomcat/7.0.23日志中找到.


这是日志:


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.


and this is the logs:

INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@4ded8e')
Jan 09, 2012 12:40:49 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet helloworld as unavailable
Jan 09, 2012 12:40:49 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet helloworld
java.lang.ClassNotFoundException: HelloWorldServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)




任何帮助将不胜感激.

谢谢

阿拉斯泰尔




Any help will be greatly appreciated.

Thanks

Alastair


推荐答案

AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.AprEndpoint
AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.AprEndpoint


SocketProcessor.run(AprEndpoint.java:1815) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor
SocketProcessor.run(AprEndpoint.java:1815) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor


Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722) 根本原因 java.lang.ClassNotFoundException:HelloWorldServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol
Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722) root cause java.lang.ClassNotFoundException: HelloWorldServlet org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol


这篇关于严重:为servlet helloworld Apache-Tomcat 7.0.23分配异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆