我試圖設置一個場景,其中一個Flex應用程序將能夠使用兩個不同的Web應用程序實現BlazeDS中編寫的資源。BlazeDS中的多個通道
我最初試圖通過specifying a channel set in my mxml code來完成,然後將其設置爲mxml中服務的通道集。但是,雖然這工作,我得到重複會話錯誤。
在one of the answers to my question linked to above中建議我可以/應該看到設置具有不同端點的通道。我想這意味着Flex應用程序只會連接到一個服務,但它確實會從另一個位置提供此服務。
我試着做我的服務-config.xml中的以下內容:
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
<channel-definition id="my-amf2" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://localhost:7001/dataservice1/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
但是,試圖啓動我的服務器當我在我的WebLogic控制檯以下錯誤。
無法註冊端點 '我-AMF',因爲它的URL, '/ messagebroker/AMF',已經由端點 '我-amf2'
和
在Web 應用程序「/ dataservice2」中啓動時,「MessageBrokerServlet」未能預加載。 flex.messaging.config.ConfigurationException:無法註冊 端點 '我-AMF',因爲它的URL, '/ messagebroker/AMF',已經是 通過終點 '我-amf2'
和
使用無法將應用程序 '_appsdir_DataService2_dir'的激活狀態設置爲true。 weblogic.application.ModuleException: [HTTP:101216] Servlet:「MessageBrokerServlet」在 Web應用程序「/ dataservice2」中啓動時無法預加載。
我猜這是因爲你只能有一個類mx.messaging.channels.AMFChannel的通道。它是否正確?
一般來說,有沒有解決我遇到的任何問題的方法?我願意接受不同的解決方案。
我已經google和讀了幾個小時,但沒有找到任何關於此。
我們希望在所有應用程序和特定於該應用程序的應用程序特定服務之間共享一個通用功能服務。
我想,正如錯誤消息所述,您應該簡單地爲my-amf2提供一個不同的端點URL。當然,你必須在web.xml中設置servlet。 – RIAstar 2012-03-21 13:05:36
你不得不原諒我的無知:據我所知,這個URL已經不同了,因爲它有一個不同的端口。我不確定該怎麼做。你能否詳細說明一下?這將非常感激。 – 2012-03-21 13:20:47
你確定它不同嗎?從我所看到的'{server.port}'令牌可以用相同的端口替換。您可以使用FireBug或[Charles](http://www.charlesproxy.com/)來準確監控它嘗試連接的地址。 – RIAstar 2012-03-21 14:18:41