如何在Tomcat中运行应用程序?

时间:2010-06-15 09:17:30

标签: java tomcat

我已将我的项目放在tomcat_home / webapps /目录中。结构是:project_name / WEB-INF / classes。在WEB-INF中我已经放了我的web.xml描述符。问题是当我尝试运行应用程序时,它找不到文件。错误是:

The requested resource () is not available.

我的web.xml内容是:

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

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

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

    version="2.4">
<servlet>
   <servlet-name>Chapter1 Servlet</servlet-name>
   <servlet-class>Ch1Servlet</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>Chapter1 Servlet</servlet-name>
   <servlet-url>/Serv1</servlet-url> 
</servlet-mapping>
</web-app>

我也重启了服务器,但它不想工作。 有什么建议吗?

5 个答案:

答案 0 :(得分:1)

您的servlet是否具有命名空间。在标记中,您需要完全限定Ch1Servlet类,即my.code.Ch1Servlet

---阅读评论后补充-----

好的,试试吧。为您的webapp创建上下文。创建一个名为project_name.xml的文件,并将以下内容放入其中:

<Context path="/Serv1" docBase="webapps/project_name" 
         reloadable="true" debug="0" privileged="true">
</Context>

现在将xml文件放在webapps目录中。

如果要部署WAR,请将docBase替换为“webapps / project_name.war”

答案 1 :(得分:1)

你需要扔掉你所拥有的东西,重新开始并仔细检查:

http://tomcat.apache.org/tomcat-6.0-doc/appdev/index.html

到目前为止你学到了什么?

  1. 您的servlet .class需要在一个包中。如果您的班级是Bar.jar,顶部有package com.foo;
  2. ,您应该看到WEB-INF / classes / com.foo.Bar.class
  3. 将您的应用打包到名为MyApp的WAR中,并将其放入/ webapps进行部署。
  4. 如果将com.foo.Bar映射到/ Bar
  5. ,则网址必须为http://localhost:8080/MyApp/Bar

    迫使人们提出建议,并重复“它不起作用”,不会让你到达你需要的地方。

答案 2 :(得分:0)

如果您使用Tomcat附带的默认server.xml,则不必将其更改为仅运行Web应用程序。您是否尝试过以下网址访问它:http://localhost:8080/project_name/

答案 3 :(得分:0)

看起来您需要将servlet放在一个包中,例如 com.me.Ch1Servlet。然后将servlet-class声明更改为 <servlet-class>com.me.Ch1Servlet</servlet-class>

答案 4 :(得分:0)

如果网址中没有网络应用名称http://localhost:8080/Serv1怎么样?