如何在Eclipse中设置Jetty而不使用插件?

4
我想开始学习Java Web开发。首先,我想在Eclipse中使用Jetty服务器建立一个良好的开发环境,这将允许进行短周期的开发。但是我在设置时遇到了困难。
有其他关于此的问题,但它们要么过时,要么对我来说不完整。我已经看到了使用插件的建议,但是插件似乎已经过时了。而且我不想在一开始就被要求使用Maven。
我已经看到了在Eclipse中设置Jetty而不使用插件的方法: 但是对于像我这样的初学者来说,它们是不完整的。
我按照链接文章中的步骤操作。但在第2步中,我不知道web.xml应该有什么内容,所以我创建了一个空的XML文件。在第4步中尝试运行服务器时,出现了java.lang.ClassNotFoundException: org.mortbay.jetty.webapp.WebAppContext错误。 如何在Eclipse中设置Jetty而不使用插件? 更新: 正如waxwing建议的那样,我应该更改类,因为它从Jetty 6更改为Jetty 7。我重新启动Jetty服务器,现在我得到了NoSuchMethodException错误:
2010-07-25 13:37:22.849:WARN::Config error at <Set name="var">../sampleweb/sampleweb_webroot</Set> java.lang.NoSuchMethodException: class org.eclipse.jetty.webapp.WebAppContext.setVar(class java.lang.String)
2010-07-25 13:37:22.849:WARN::Unable to reach node goal: started
java.lang.NoSuchMethodException: class org.eclipse.jetty.webapp.WebAppContext.setVar(class java.lang.String)

我的Jetty项目中位于context目录中的sampleweb.xml文件,其内容如下,摘自该文章:

<?xml version="1.0" encoding="UTF-8"?>
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/app</Set>
<Set name="var">../sampleweb/sampleweb_webroot</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultDescriptor">
<SystemProperty name="jetty.home" default="."/>
/etc/webdefault.xml</Set>
</Configure>

我想设置一个简单的Hello World servlet。

1
根据我在Jetty网站上阅读的内容,Jetty包含一个Servlet容器,但不包括用于EE部署(如EAR文件)的容器。 - Kwebble
@Kwebble:好的,但是我的意思是我想学习服务器端的Java。 - Jonas
好的,对于这个问题Jetty是一个不错的选择。 - Kwebble
2个回答

0
你需要Jetty服务器适配器 - 查找安装新服务器 - 这样你就可以使用未解压的Jetty 6进行工作。

0

该指南不完整,因为技术栈尚未为您选择。一个空的web.xml应该可以正常运行 - 但是Jetty也不会发布任何内容。换句话说,没有访问点进入您的应用程序。

应该有很多关于web.xml的参考资料。请参见this example<servlet><servlet-class>子元素指出了实现javax.servlet.Servlet的类,这是处理Web请求的类的基本接口。

另一方面,您可以使用类似Spring框架的东西,然后使用另一种方法,将Spring本身注册为servlet(或servlet监听器)。请参见官方文档中的此示例。还有许多其他Web框架,它们都需要不同的web.xml布局。

关于你的第二个问题,你是否在使用Jetty 6?该指南是针对Jetty 6编写的,对于更新版本将无法使用,因为类名已更改。如果你正在使用Jetty 6,请考虑安装Thorbjørn Ravn Andersen在他的回答中建议的Jetty服务器适配器。

谢谢,我正在使用Jetty 7,并已更改了类名。我不明白如何为一个简单的“Hello World”servlet配置我的web.xml。现在我得到了一个'NoSuchMethodException'异常,详见我更新的问题。 - Jonas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接