在flex与java通信时候(使用blazeDS的amf),本地开发环境没有问题,web容器是tomcat。结果发布到应用服务器上后出现以下错误信息,服务器用的是websphere。
NetConnection.Call.Failed: HTTP: Status 200
开始认为是配置文件问题修改了服务端services-config.xml文件的endpoint信息,url改成服务器发布地址。并且在客户端的RemoteObject对象也添加了endpoint信息,重试还是一样。开始是用ie无法跟踪网络所以换用火狐,结果没有出现以上报错信息应用也是正常的,所以证明这是ie上才有的bug,后来goolge了下,
发现ie传输缓存问题,解决办法是在channel 添加<add-no-cache-headers>false</add-no-cache-headers>属性即可。
整体如下:
<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"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>
这回重新启动应用一切都ok了。