2015-07-03 106 views
0

我试图运行使用Apache Tomcat V7.0(我也尝试过8)使用动态web模块3.0版一个servlet的servlet。运行与Eclipse的Java EE

Code

我也试图与XML文件(即使它应该没有它的工作,因为它的3.0),它不藏汉工作...到底我做错了什么?

的错误是请求的资源不可用。

编辑:好了,我又做了一个XML文件,所以你也许可以告诉我,我在做什么错在它...

<?xml version="1.0" encoding="UTF-8"?> 
<web-app> 
<servlet> 
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>code.HelloServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>HelloServlet</servlet-name> 
    <url-pattern>/hello</url-pattern> 
    </servlet-mapping> 
</web-app> 

代码里面的src包的名称。

我使用的网址:http://localhost:8080/hello,仍然没有工作

+0

我不确定但是,不应该在web.xml中定义servlet可以接收哪些URL模式? – DGomez

+0

你用过什么网址? – Bikku

+0

我使用URL和XML文件编辑了问题 – Rayden

回答

0

这是一个从这个问题还不是很清楚,要么你想用@WebServlet或通过web.xml创建Servlet

要使用@WebServlet创建Servlet,您完全不需要配置web.xml

只需创建与@WebServlet注释的类并调用下面的网址:

import java.io.IOException; 

import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/HelloServlet") 
public class MyServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws IOException { 
     response.getWriter().println("Hello"); 
    } 
} 

然后调用网址:http://host:port/context-root[/url-pattern],对我来说这http://localhost:8989/TestApplication/HelloServlet

或者,如果你想通过web.xml创建然后装入在启动servlet如下:

<servlet> 
     <display-name>Hello Servlet</display-name> 
     <servlet-name>HelloServlet</servlet-name> 
     <servlet-class>com.package.name.HelloServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/HelloServlet/*</url-pattern> 
    </servlet-mapping> 

再次,你可以打电话像:http://host:port/context-root[/url-pattern],对我来说它是http://localhost:8989/TestApplication/HelloServlet

+0

我不明白如何获得应用程序上下文名称。 – Rayden

+1

在Eclipse中,右键点击你的项目,然后进入'Web Project Settings',在那里你会看到'Context root' – Arpit

1

包是错误的,你在web.xml中定义:

<servlet-class>code.HelloServlet</servlet-class> 

,并在课堂上

package net.codejava; 

所以这应该可以解决问题:

<servlet-class>net.codejava.HelloServlet</servlet-class 
+0

是的,我改变了,忘了编辑图像 – Rayden