0

我正在将调用者 servlet 以前部署的许多 Servlet 迁移到新的 tomcat7 安装。我知道我必须在 web.xml 中创建 servlet 和 servlet-mapping 元素才能让它工作,但我没有让它工作。我首先将默认包中的所有旧 servlet 类现在都放在一个名为 servlets 的包中。tomcat7 中的 ROOT 文件夹没有 WEB-INF 文件夹,所以我创建了这个,并在这个文件夹中创建了一个新的 web.xml 文件,目前看起来像这样(只有 1 个 servlet 开始,以及从 etc/tomcat7/web.xml 复制的 web-apps 元素):

<?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">
<servlet>
        <servlet-name>ScannerServlet</servlet-name>
        <servlet-class>servlets.ScannerServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ScannerServlet</servlet-name>
    <url-pattern>/servlet</url-pattern>
</servlet-mapping>
</web-app>

然后,我将所有类文件放在 ROOT\WEB-INF\classes\servlets 中,然后重新启动 tomcat 并尝试http://myip.com:8080/servlet/ScannerServlet但然后我得到“请求的资源不可用。我然后尝试将 servlet 和 servlet-mapping 添加到 etc/tomcat7/web.xml 但没有进一步成功。我做错了什么?还是我做对了,但还有一些事情要做?

[编辑] 我尝试在 ROOT 中创建一个名为 servlet 的新文件夹,并将 WEB-INF 文件夹移至此处。如果我将 index.html 文件放在 servlet 文件夹中,如果我调用http://myip.com:8080/servlet/ ,它会显示出来,但我仍然会收到“尝试调用时请求的资源不可用。 .. /servlet/ScannerServlet 或 ... /servlet/servlet/ScannerServlet

4

1 回答 1

0

我终于想通了!我将文件和文件夹移动到 webapps/servlet/ 而不是 webapps/ROOT/ 然后我将 url-pattern 更改为 /ScannerServlet 然后可以从http://myip.com:8080/servlet/ScannerServlet访问 servlet :-)

于 2013-08-28T12:52:11.937 回答