如何在Jetty中部署Servlet?

时间:2010-11-08 09:35:30

标签: servlets jetty file-structure

我创建了一个我想在Jetty 7.2中部署的简单Servlet。 Jetty正在运行,能够在http://localhost:8080/jonas/test.jsp上提供JSP页面。我用java -jar start.jar命令启动了Jetty。

我将已编译的Servlet MyServlet.class保存在<my_jetty_directory>/webapps/jonas/WEB-INF/classes/MyServlet.class,然后尝试在http://localhost:8080/jonas/servlets/MyServlet上访问该Servlet,但我收到HTTP 404错误。

HTTP ERROR 404

Problem accessing /jonas/servlet/MyServlet. Reason:

    Not Found

我还有什么需要做的吗?我应该在Jetty文件结构中放置MySerlvet.class


我现在创建了一个简单的web.xml文件,并将其保存在<my_jetty_directory>/webapps/jonas/WEB-INF/web.xml中并重新启动了我的Jetty,但它不起作用。这是我简单的web.xml

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

我遇到了与JSP类似的问题,现在已经解决了:How do I deploy a JSP file in the Jetty webserver?

2 个答案:

答案 0 :(得分:4)

您必须使用web.xml<servlet><servlet-mapping>中映射您的servlet,或者如果使用servlet 3.0,则使用@WebServlet进行注释。

答案 1 :(得分:0)

我认为在Jetty Server的安装文件夹或lib或bin或conf子文件夹中应该有一个config或readme.txt文件。阅读这些内容,您将获得放置课程的特定目录。在Jetty服务器中设置classes目录或者至少记住它。这些将是Jetty服务器运行时运行的类。

对于类路径,java有一种被告知从指定文件夹运行类的方法。您可以添加 - :

* "." at the end of classpath variable in WINDOWS NT platform
* set CLASSPATH=%CLASSPATH%;. in command mode or AUTOEXEC.bat of other WINDOWS
* set CLASSPATH=%CLASSPATH%:. and export CLASSPATH in linux

有了这个,“。” - fullstop,在classpath变量中,您将运行java命令查找当前目录中的类。