代码之家  ›  专栏  ›  技术社区  ›  artaxerxe

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

  •  1
  • artaxerxe  · 技术社区  · 15 年前

    我已经把我的项目放在tomcat\u home/webapps/目录下。结构是:project\u 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 回复  |  直到 15 年前
        1
  •  1
  •   Adrian Regan    15 年前

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

    ---阅读后附加评论-----

    好的,试试这个。为您的Web应用程序创建上下文。创建一个名为project\u name.xml的文件,并将以下内容放入其中:

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

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

    如果要部署WAR,请将docBase替换为“webapps/project\u name.WAR”

        2
  •  1
  •   duffymo    15 年前

    你需要扔掉你所拥有的一切,重新开始,非常仔细地经历这一切:

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

    1. 你的servlet.class需要在一个包中。如果您的类是带有 package com.foo; 在顶端
    2. http://localhost:8080/MyApp/Bar 如果将com.foo.Bar映射到/Bar

    强迫别人提建议,重复“这不管用”,并不能让你达到你需要的程度。

        3
  •  0
  •   Chris J    15 年前

    如果您使用的是Tomcat附带的default server.xml,则不必更改它来运行Web应用程序。您是否尝试从以下URL访问它: http://localhost:8080/project_name/

        4
  •  0
  •   lucrussell    15 年前

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

        5
  •  0
  •   shinynewbike    15 年前

    怎么样 http://localhost:8080/Serv1 在URL中没有webapp名称?