use*_*636 14 eclipse jetty java-ee
我正在尝试设置Eclipse以运行并将我的项目部署到Jetty 7服务器(最旧版本可从http://download.eclipse.org/jetty/获得).我已经下载了Jetty 7并将其解压缩,我从可用的服务器适配器列表中安装了Jetty插件,但是当我尝试配置新的Jetty服务器时,服务器类型列表只包含"Jetty 6".如果我使用它并将其指向我的服务器运行时,当我尝试启动它时,我收到以下错误:
java.lang.NoClassDefFoundError: org/mortbay/start/Main Caused by: java.lang.ClassNotFoundException: org.mortbay.start.Main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Exception in thread "main"
我猜我需要一个不同的适配器来启动Jetty 7,但我不知道在哪里可以找到它.
Dim*_*van 22
比使用WTP适配器更好,我更喜欢使用嵌入式码头.我只是创建一个常规的java项目,让我们调用"embedded-jetty".我在项目属性的Java Build Path的Projects部分中将原始webapp项目作为此项目的要求.比我创建一个启动这样的jetty实例的类:
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class JettyServer {
public static void main(String[] args) {
Server server = new Server(8080);
WebAppContext context = new WebAppContext();
context.setResourceBase("../webapp-project/WebContent");
context.setDescriptor("../webapp-project/WebContent/WEB-INF/web.xml");
context.setContextPath("/");
context.setParentLoaderPriority(true);
server.setHandler(context);
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在embedded-jetty项目中,我创建了一个"lib"文件夹并从jetty/lib文件夹中复制了所有的lib,然后在项目属性的Libraries中添加了libs.
运行和调试jetty嵌入式对我来说很有用,jsp和类重新加载就像一个魅力
问题在于,随着迁移到 Eclipse,包名称发生了变化,而 Jetty 人员仍然很忙。
最简单的选择是从 Codehaus ( http://dist.codehaus.org/jetty/ )下载 Jetty 6 ,将其解压到某处并使用 Jetty 6 适配器。
归档时间: |
|
查看次数: |
22910 次 |
最近记录: |