如何正确部署.war文件?

时间:2014-05-26 15:07:24

标签: java jsp tomcat servlets deployment

我第一次尝试部署test.war文件。

我在Tomcat 7上使用apt-get安装了Ubuntu server 12.04

webapps目录位于:/var/lib/tomcat7/webapps

Tomcat 7安装在此处:/usr/share/tomcat7

我使用test生成了一个名为Eclipse的基本Web项目,使用本地Tomcat 7服务器可以正常工作。在项目中,我有一个基本的index.jsp文件和一个Testservlet.java servlet文件。

使用FTP客户端我已将test.war文件上传到/var/lib/tomcat7/webapps自动部署的位置。但是如何在Web浏览器中浏览此目录以查看网站?

我之前尝试在/var/lib/tomcat7/webapps/ROOT目录中移动项目,这样我可以在导航到http://my-host.com:8080/test时查看index.jsp文件但是当我尝试浏览到时遇到404错误此地址http://my-host.com:8080/Testservlet的Testservlet页面。

这是Testservlet注释:

@WebServlet(description = "a test servlet", urlPatterns = { "/Testservlet" })

那么在整个过程中我错过了什么?在webapps目录中部署.war文件后,我还需要做些什么才能浏览网站而不必将其放入/ROOT子目录?

编辑:

导航到http://my-host.com:8080/test/Testservlet时遇到404错误,当我在/var/lib/tomcat7/webapps部署test.war时导航到http://my-host.com:8080/test

编辑:

这是测试项目的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/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

编辑:删除servlet中的注释并将servlet映射添加到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/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet> 
                <servlet-name>test</servlet-name> 
                <servlet-class>testpackage.Testservlet</servlet-class> 
        </servlet> 
        <servlet-mapping> 
                <servlet-name>test</servlet-name> 
                <url-pattern>/Testservlet</url-pattern> 
        </servlet-mapping> 
</web-app>

编辑:添加了Testservlet.java代码:

package testpackage;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Testservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        out.println("This is a test servlet");
    }

}

编辑:错误日志

 - - [26/May/2014:15:19:35 +0100] "GET /Testservlet HTTP/1.1" 404 988
 - - [26/May/2014:15:19:35 +0100] "GET /favicon.ico HTTP/1.1" 404 988
 - - [26/May/2014:15:43:50 +0100] "GET / HTTP/1.1" 404 955
 - - [26/May/2014:15:51:36 +0100] "GET / HTTP/1.1" 404 955
 - - [26/May/2014:15:51:40 +0100] "GET /test HTTP/1.1" 404 967
 - - [26/May/2014:16:13:12 +0100] "GET /test HTTP/1.1" 404 967
 - - [26/May/2014:16:13:20 +0100] "GET /root/test HTTP/1.1" 404 982
 - - [26/May/2014:16:16:19 +0100] "GET /test HTTP/1.1" 404 967
 - - [26/May/2014:16:16:58 +0100] "GET /test/Testservlet HTTP/1.1" 404 1003
 - - [26/May/2014:16:32:09 +0100] "GET / HTTP/1.1" 404 955
 - - [26/May/2014:16:35:38 +0100] "GET / HTTP/1.1" 404 955
 - - [26/May/2014:16:40:16 +0100] "GET /test HTTP/1.1" 404 967

0 个答案:

没有答案