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

时间:2009-10-06 00:34:12

标签: gwt embedded-jetty

我正试图在我的后端java代码中调用Web服务 在托管模式下运行。一切都很好,GWT RPC调用工作 我可以在服务器上看到它,然后一旦它试图调用一个 外部网络服务(使用jax-ws)码头摔倒了 内部服务器错误(500)。

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

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

我在OS X 10.6.1上运行GWT 1.7

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

1 个答案:

答案 0 :(得分:3)

来自the documentation

  

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

所以最简单的解决方案是使用-noserver选项并使用您自己的Java服务器 - 更不用说那样的限制,没有任何缺点(我知道)。 如果您使用的是Google Plugin for Eclipse,则可以在项目属性中轻松设置。有关配置的详细信息,请参见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参数来启用文件记录,但在这种情况下它可能无济于事,因为问题在于托管模式处理异常的方式,而不是它的方式介绍他们。