[英]Can't deploy application to Tomcat
我尝试从Tomcat 7开始。
我在Eclipse中创建了该应用程序。 这是我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" id="WebApp_ID" version="2.4">
<welcome-file-list>
<welcome-file>
view.jsp
</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>/servlets/myServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myServlet</url-pattern>
</servlet-mapping>
</web-app>
我从Apache的站点下载了最新的Tomcat,并将JAVA_HOME
添加到catalina.bat
。 启动Tomcat之后,我进入Manager app
并选择了我的应用程序,但得到了404。在地址http://localhost:8080/ThreeRest/
。
另一个奇怪的事情是该应用程序没有部署到webapps
目录中,而是部署到wtpwebapps
文件夹中。
我的另一个问题是tomcat-users.xml
。 如果我添加此:
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="admin,manager,manager-gui"/>
它的工作仅在一个会话中进行。 当我停止tomcat时,它已从文件中删除。
<servlet-class>
应该是
<servlet-class>servlets.myServlet</servlet-class>
因为您在此处指定包而不是路径。
请注意,您必须访问以下任一网站
http://localhost:8080/ThreeRest/myServlet
要么
http://localhost:8080/ThreeRest/
在Web应用程序的根文件夹中使用view.jsp
。
编辑 :部署后,您的Web应用程序的文件夹结构应类似于:( /
表示目录)
tomcat-home/
|- webapps/
|- rest/ //<-- Context-Root (Web-app's name)
|- view.jsp //<-- *.html, *.jsp files
|- WEB-INF/
|- web.xml
|- lib/
|- *.jar files
|- classes/ //<-- ALL your servlets go here
|- servlets/ //<-- with the required package/folder structure
|- myServlet.class
好了,用于Servlet声明的示例配置:
假设您正在创建一个servlet(HelloServlet,它在xyz包中):
所以代码是这样的:
package x.y.z;
//imports here
public class HelloServlet extends HttpServlet {
....Code here
}
现在在web.xml中,如果我要映射此servlet,我将执行以下操作:
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>
x.y.z.HelloServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
这就足够了,一旦将应用程序部署在tomcat中,并说上下文名称为testservlet ,那么我可以像下面这样访问该servlet:
http://<ip>:<port on which tomcat is running>/testservlet/myservlet
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.