我创建了一个我想在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?
答案 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命令查找当前目录中的类。