GWT的托管模式码头从哪里运行?

rus*_*elf 8 gwt embedded-jetty

我正在尝试在托管模式下运行时在后端java代码中调用Web服务.一切都很好,GWT RPC调用工作,我可以在服务器上看到它,然后一旦它尝试调用外部Web服务(使用jax-ws),jetty就会出现内部服务器错误(500).

我已经将日志一直转到ALL,但我仍然没有看到任何堆栈跟踪或导致此错误.我只得到一行关于请求标头和响应的500错误.

有没有人知道内部码头是否在某处保存了日志文件,或者我如何调试错误?

我在OS X 10.6.1上运行GWT 1.7

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

Igo*_*mer 3

文档中:

在托管模式下调试时,您还可以使用真实的生产服务器。如果您要将 GWT 添加到现有应用程序,或者您的服务器端要求超出了嵌入式 Web 服务器的处理能力,这会很有用。请参阅这篇文章,了解如何在托管模式下使用外部服务器。

因此,最简单的解决方案是使用该-noserver选项并使用您自己的 Java 服务器 - 这样限制更少,没有任何缺点(据我所知)。如果您使用的是 Google Plugin for Eclipse,则可以在项目的属性中轻松设置。详细的配置信息可以在官方网站上找到。

编辑:您可以尝试绕过托管模式 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 实例是从哪里运行的,以及它的日志文件位于哪里(如果有的话) (2认同)