如何在码头部署servlet?
-
29-09-2019 - |
题
我创建了一个简单的servlet,我想在Jetty 7.2中部署。 Jetty正在运行,并且能够在JSP页面上提供 http://localhost:8080/jonas/test.jsp
. 。我开始用码头 java -jar start.jar
命令。
我保存了我的编译的servlet MyServlet.class
在 <my_jetty_directory>/webapps/jonas/WEB-INF/classes/MyServlet.class
然后试图访问该servlet http://localhost:8080/jonas/servlets/MyServlet
但是我得到了 HTTP 404
错误。
HTTP ERROR 404
Problem accessing /jonas/servlet/MyServlet. Reason:
Not Found
我还有其他事情吗?我应该放在码头文件结构中 MySerlvet.class
?
我现在创建了一个简单的 web.xml
档案并将其保存在 <my_jetty_directory>/webapps/jonas/WEB-INF/web.xml
并重新启动了我的码头,但行不通。这是我的简单 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有类似的问题,现在已经解决了: 如何在Jetty Web服务器中部署JSP文件?
解决方案
您必须在 web.xml
, , 使用 <servlet>
和 <servlet-mapping>
, ,或用它注释 @WebServlet
如果使用Servlet 3.0。
其他提示
我认为您的Jetty服务器的“安装文件夹”,“ lib”或“ bin或conf子文件夹”中应该有一个config或readme.txt文件。通读这些内容,您将获得特定的目录来放课。在Jetty服务器中设置类目录或至少要重新透露它。这些将是码头服务器运行时运行的类。
至于类路径,Java可以被告知从指定文件夹中运行课程。您可以添加A-:
* "." 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
有了这个, ”。” - FullSpop,在类Path变量中,您将使运行Java命令在当前的目录中查找类。