我试图设置一个场景,其中一个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