2013-03-12 57 views
0

下午所有,工作燈上下文根不更新/如何重新部署工作燈服務器在Eclipse開發

這裏是我的背景:

我設立一個現有的工作燈項目與App ENVS爲IPhone,Android和移動網絡。

當使用Worklight Console預覽應用程序時,我僅從iPhone應用程序獲取上下文根錯誤。 (我得到錯誤:服務器無法處理來自應用程序的請求...)

當我打開瀏覽器的JS控制檯時,我看到的問題是,該應用程序正在請求錯誤的上下文根。它正在訪問/ worklight /上下文,這不在那裏。

,做工作的上下文根如下: 的http://本地主機:8080 /應用/服務/ API/[APPNAME]/iphone /初始化

上下文根的iPhone試圖打擊: http:// localhost:8080/worklight/apps/services/api/[APPNAME]/iphone/init

這是奇怪的部分。上下文根對於Android和移動Web環境來說很好。只有iPhone環境存在上下文根問題。

所有這三個環境共享相同的application-descriptor.xml文件和相同的服務器。

下面是一些文件輸出。

文件如下:

/server/conf/worklight.properties

publicWorkLightHostname=localhost 
publicWorkLightProtocol=http 
publicWorkLightPort=8080 
publicWorkLightContext=/worklight/ 

/apps/[APPNAME]/application-descriptor.xml

<worklightServerRootURL>http://localhost:8080</worklightServerRootURL> 

所以幾個問題。

1)在設置上下文根時,客戶端和服務器之間的關係是什麼。上下文根必須在兩者之間進行匹配嗎?一個是主人,另一個是奴隸,不需要設置?

2)(有點不相關)在調試此問題時,我遇到了有關如何在Eclipse dev ide中「解除部署」服務器的零文檔。 (從IBM的文檔中取消部署服務器)當我更改服務器設置(worklight.properties)時,我需要知道如何重新部署服務器。我已經看到了引用來手動打開戰爭,只是在IDE中停止並啓動服務器。

任何幫助,非常感謝。

回答

1

如果使用上下文根,它必須存在於worklight.properties和application-descriptor.xml中。確保兩者匹配,然後重新構建和部署,然後查看問題是否仍然存在。

當使用Worklight的開發版時,您的服務器基於在Eclipse中運行的Jetty(它與您在Eclipse中安裝的Worklight Studio插件捆綁在一起)。你不需要「解除」任何東西。只需對worklight.properties和application-descriptor.xml進行更改並重新構建應用程序即可。這些更改將同時提供給服務器和客戶端。

但請注意,使用上下文根主要用於使用應用程序服務器,如Tomcat,Liberty或WAS。

+0

好的,謝謝你的解釋。我試圖通過進行以下更改來刪除上下文根。 '#worklight.properties publicWorkLightHostname = [IP_HERE] publicWorkLightProtocol = HTTP publicWorkLightPort = 8080 publicWorkLightContext =/ #應用descriptor.xml HTTP:// [IP_HERE]:8080' 正在使用只適用於設置沒有上下文根? 謝謝, Chris – 2013-03-12 19:07:35

+0

我也嘗試過這些改變,對整個項目做了全面的清理和重建,然後在應用程序本身上進行了構建和部署。 但是我仍然在模擬器中看到iphone應用程序正在使用worklight的上下文根。任何其他想法?這是在OSX上。 – 2013-03-12 19:14:38

+0

這些更改是可以的,是的。在Eclipse中重新構建應用程序後,請在Xcode中打開更新的項目。 – 2013-03-12 19:32:00