2009-10-06 83 views
8

我試圖在託管模式下運行 時,在我的後端Java代碼中調用Web服務。一切正常,GWT RPC調用工作 ,我可以在服務器上看到它,然後一旦它嘗試調用外部Web服務(使用jax-ws) 碼頭崩潰了 內部服務器錯誤(500 )。GWT的託管模式碼頭從哪裏運行?

我已經把日誌一路打到了 ALL,但我仍然沒有看到任何堆棧跟蹤或導致此錯誤。我只需要一行關於請求頭和響應的500錯誤。

有誰知道內部碼頭是否在某處保存了一個日誌文件,或者 我該如何去調試哪些問題?

我在OS X上運行的GWT 1.7 10.6.1

編輯:我知道我可以使用-noserver選項,但我找到了這個地方生活的東西真正感興趣!

+0

您可以使用'-logLevel DEBUG'作爲運行時參數並檢出控制檯。 – 2012-11-14 12:18:52

回答

3

the documentation

您也可以使用真正的生產 服務器,同時在託管模式下的調試。 如果您將 GWT添加到現有應用程序,或者如果您的服務器端要求 變得比服務器可以處理的嵌入式web 更多,這可能會很有用。請參閱 上的這篇文章如何在 託管模式下使用外部服務器。

所以最簡單的解決方案是使用-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參數啓用文件記錄,但它可能不會在這種情況下幫助,因爲問題在於託管模式處理異常的方式,而不是它呈現它們的方式。

+2

我知道,這就是我正在做的,但我真的很想知道這個Jetty實例從哪裏運行,以及在哪裏(如果有的話)它的日誌文件生命 – rustyshelf 2009-10-06 01:15:30