加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于blazeDS中endpoint的设置问题

发布时间:2020-12-15 01:23:53 所属栏目:百科 来源:网络整理
导读:? ? ?blazeDS的示例项目中,在services-config.xml文件里,已经有过如下定义: channel-definition ? id = "my-amf" ? class = "mx.messaging.channels.AMFChannel" ? ???? endpoint ? url = "http://{server.name}:{server.port}/{context.root}/messagebro

? ? ?blazeDS的示例项目中,在services-config.xml文件里,已经有过如下定义:

 
 
  1. <channel-definition?id="my-amf"?class="mx.messaging.channels.AMFChannel">?
  2. ????<endpoint?url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"?class="flex.messaging.endpoints.AMFEndpoint"/>?
  3. </channel-definition>?

并且在remoting-config.xml中已经引用了这个channel:

 
 
  1. <default-channels>?
  2. ????<channel?ref="my-amf"/>?
  3. </default-channels>?

所以在定义远程对象时,例如:

 
 
  1. <fx:Declarations>?
  2. ????<mx:RemoteObject?id="ro"?destination="my_example"/>?
  3. </fx:Declarations>?

应该不需要额外增加endpoint的设置。看了很多论坛,大多数都认为设置是必须的,而且这样设置确实可以解决问题,但是个人觉得这是多次一举的事情。大多数人都是怎么做的呢?(引用这位朋友的做法?http://mingxiao2010.blog.163.com/blog/static/861904812010143946515/)

配置endpoint为任意如下的一种方式:

1) 全路径:????????? endpoint="http://localhost:8080/flexWeb/messagebroker/amf" >

2) 基于contextRoot: endpoint="/flexWeb/messagebroker/amf" >

3) 基于当前路径:?? endpoint="messagebroker/amf" >

注意,加粗部分是项目名称

这并不是不可以,只是我觉得同一件事做了两次,很不爽。如果这么做的话,可以选择第3)个做法,随着项目的发布,server是要改变的,第一种方法就需要更改。

? ? 那么,问题到底出在哪里呢?我个人觉得问题还是出在这里

 
 
  1. url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"?

? ? 从报错信息来看,{context.root}总是不能被正确理解为项目名称,取而代之的是WebContent。所以我的做法是,在services-config.xml中直接把其修改为

 
 
  1. url="http://{server.name}:{server.port}/blazeDS/messagebroker/amf"?

其中,blazeDS是我的示例项目名称。于是在定义remoteObject时即可以不用设置endpoint。

PS:

看过一些关于context.root即上下文根目录的修改博客,但是我都不适用。可能是建立工程的架构不一样,或者环境不一样(Eclipse3.4 Galileo + FlashBuilder 4 Plugin)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读