SSH整合flex4.6出现的问题:
1、没有整合flex之前,ssh是能够正常运行的。
2、flex没有整合ssh,只整合java的时候,也是可能正常运行的。
3、整合flex到ssh的时候,配置与之前整合java的配置一样:
在web.xml中增加如下代码:
<display-name>BlazeDS</display-name>
<description>BlazeDS Application</description>
<servlet>
<servlet-name>MessageBrokerServlet</servlet-name>
<display-name>MessageBrokerServlet</display-name>
<servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
<init-param>
<param-name>services.configuration.file</param-name>
<param-value>/WEB-INF/flex/services-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MessageBrokerServlet</servlet-name>
<url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
在remoting-config.xml中配置如下:
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="ssh_flex">
<adapter ref="java-object" />
<properties>
<source>com.text.SSHFlex</source>
</properties>
</destination>
启动tomcat,然后输入:
http://127.0.0.1/Test/messagebroker/amf
没的报错(据说不报错说明整合成功)。
新建flex项目,在连接服务端的时候,验证通过。
以下是mxml的部分内容:
protected function application1_creationCompleteHandler():void
{
text_flex.sayHello("helloWorld");
}
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="text_flex" showBusyCursor="true" destination="ssh_flex"
result="text_resultHandler(event)"
fault="text_faultHandler(event)" endpoint="http://127.0.0.1/Test/messagebroker/amf"/>
</fx:Declarations>
我在sayHello这个方法中加了断点,调试运行的时候,根本没有进去就报错了:
[BlazeDS]getWriter() has already been called for this response
java.lang.IllegalStateException: getWriter() has already been called for this response
我是刚学的flex,是不是整合的时候,哪里不正确啊!
请各位高手赐教!
忠心祝愿各位工作愉快!
谢谢!
Java Flex SSH
------解决方案--------------------
在用到getWriter之前,response.reset();下
------解决方案--------------------