【问题标题】:Where does GWT's Hosted Mode Jetty Run From?GWT 的托管模式 Jetty 从哪里运行?
【发布时间】:2009-10-06 00:34:11
【问题描述】:

我正在尝试在后端 Java 代码中调用 Web 服务 在托管模式下运行。一切正常,GWT RPC 调用有效 我可以在服务器上看到它,然后只要它尝试调用 外部 Web 服务(使用 jax-ws) 内部服务器错误 (500)。

我已经把日志一直调到 ALL,但我仍然没有看到任何堆栈跟踪或导致此错误的原因。我只收到一条关于请求标头和响应的 500 错误。

有谁知道内部码头是否在某处保存了日志文件,或者 我该如何调试问题所在?

我在 OS X 10.6.1 上运行 GWT 1.7

编辑:我知道我可以使用 -noserver 选项,但我真的很想知道这东西在哪里!

【问题讨论】:

  • 您可以使用-logLevel DEBUG 作为运行时参数并查看输出控制台。

标签: gwt embedded-jetty


【解决方案1】:

来自the documentation

您也可以使用真实的制作 在托管模式下调试时的服务器。 如果您要添加,这可能很有用 GWT 到现有应用程序,或者如果 您的服务器端要求有 不仅仅是嵌入式网络 服务器可以处理。见这篇文章 如何使用外部服务器 托管模式。

因此,最简单的解决方案是使用 -noserver 选项并使用您自己的 Java 服务器 - 这样的限制要少得多,没有任何缺点(据我所知)。 如果您使用的是 Eclipse 的 Google 插件,它很容易在项目的属性中进行设置。详细配置信息请见the official site

编辑:您可以尝试绕过托管模式 TreeLogger,如下所述:http://blog.kornr.net/index.php/2009/01/27/gently-asking-the-gwt-hosted-mode-to-not):

只需创建一个名为 “commons-logging.properties”在 类路径的根目录,然后添加 以下行:

[使用 Log4j 后端] org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

[使用 JDK14 后端] org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger

[使用 SimpleLog 后端] org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

Edit2:GWT 的主干现在也支持 -logfile 参数来启用文件日志记录,但在这种情况下可能无济于事,因为问题在于托管模式处理异常的方式,而不是它的方式呈现给他们。

【讨论】:

  • 我知道,这就是我正在做的事情,但我真的很想知道这个 Jetty 实例是从哪里运行的,以及它的日志文件在哪里(如果有的话)
猜你喜欢
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 2012-05-07
  • 2011-11-27
  • 1970-01-01
相关资源
最近更新 更多