首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

[BlazeDS]getWriter() has already been called for this response解决办法

2013-07-04 
[BlazeDS]getWriter() has already been called for this responseSSH整合flex4.6出现的问题:1、没有整合fl

[BlazeDS]getWriter() has already been called for this response
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();下
------解决方案--------------------


贴代码,。说不清
[解决办法]
flex没有整合ssh,只整合java的时候,也是可能正常运行的。这个说明通过BlazeDS与java端交互是正确的。看了看你的代码
public class SSHFlex extends ActionSupport implements ModelDriven<Object>,ServletRequestAware 
这个地方有问题,一般来说,ssh项目与flex整合,其实是Flex与Spring结合,而不是与struts发生关系,因为你是用flex调用spring的service方法,service再请求dao。你看看这篇文章http://blog.163.com/wsslian@126/blog/static/77635189201264102143817/
[解决办法]
目前也正在研究flex, 希望牛人能指点指点, 我是要使用flex实现动态网络拓扑图的; 
怎样, 给点建议

热点排行