gwt - IntelliJ IDEA 使用自定义初始化参数配置 GWT Jetty 实例

标签 gwt intellij-idea jetty embedded-jetty

在 IntelliJ 中,是否可以使用自定义 jetty-web.xml 配置 GWT 使用的嵌入式 jetty 服务器?我想配置我的 Web 应用程序以从 jetty-web.xml 读取一些初始化参数,而不是在 Web 应用程序中指定相同的 web.xml。我们使用这种方法来删除 web.xml 中的服务器上下文特定配置,但是在开发计算机上,我们仍然需要在 web.xml 中手动设置这些设置,如果在开发计算机上也能重现相同的行为,那就太好了。

我尝试将 jetty-web.xml 放在 WEB-INF 目录中,但是每次从 IntelliJ 启动应用程序时都会引发以下异常:

java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebAppContext at java.lang.ClassLoader.findClass(ClassLoader.java:522) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337) at org.mortbay.util.Loader.loadClass(Loader.java:91) at org.mortbay.xml.XmlConfiguration.nodeClass(XmlConfiguration.java:216) at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:179) at org.mortbay.jetty.webapp.JettyWebXmlConfiguration.configureWebApp(JettyWebXmlConfiguration.java:109) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1217) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448) at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:222) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509) at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093) at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836) at com.google.gwt.dev.DevMode.main(DevMode.java:311)

有什么想法吗?

最佳答案

您使用的是较旧版本的 GWT,它嵌入了旧版本的 Jetty(即 Jetty 6.1.11,请参阅 https://stackoverflow.com/a/17592318/116472 ),其软件包名称为 org.mortbay.jetty,而不是 org.eclipse.jetty

GWT 2.6 更新到 Jetty 8,但该“功能”丢失了(存在一些类加载器问题)。

无论如何,jetty-web.xml 从未得到 GWT 的正式支持,因此我建议不要使用它(特别是现在它在 GWT 2.6 中中断)。如果您需要的不仅仅是运行 Web 应用程序,请使用外部服务器并以 -noserver 模式启动 DevMode:http://www.gwtproject.org/doc/latest/DevGuideCompilingAndDebugging.html#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT%27s

关于gwt - IntelliJ IDEA 使用自定义初始化参数配置 GWT Jetty 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22172141/

相关文章:

java.lang.OutOfMemoryError : PermGen space error with Jetty 错误

java - 在类路径中添加库后找不到 Jetty WebSocket 类

java - 使用 GWT 在 DisclosurePanel 内调整大小布局面板

GWT CellTable 单元格只读/禁用/不可编辑

异步开始和结束时的 Resty-GWT 自定义回调

gwt - 将 éàçè... 替换为 GWT 中的等效 "eace"

java - 方法签名上的断点与方法第一行上的断点之间的区别

java - 全新 IntelliJ IDEA 安装中的 Gradle 同步失败

java - 命令行版IntelliJ IDEA运行配置

java - Jetty(?) 在 Windows 上破坏大型 js 文件