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,是不是整合的时候,哪里不正确啊!
请各位高手赐教!
忠心祝愿各位工作愉快!
谢谢!JavaFlexSSH
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,是不是整合的时候,哪里不正确啊!
请各位高手赐教!
忠心祝愿各位工作愉快!
谢谢!JavaFlexSSH
解决方案 »
- 【求助】ssh 查询 视图 时快时慢 查了2天都没找出问题
- 项目一般做不做服务器端验证??
- javamail邮件系统源代码下载(b/s)
- 请教高手:关于hibernate中父子关系的删除问题!
- 请各位帮忙看一下错误的所在,怎样解决啊.我尝试使用jdbc来存取大对象,如mp3,但是出现了如下的提示:
- 各位,请问哪里有开源的BBS可下载(国产的)
- 求一深圳南山JAVA职位
- 请问哪里可以下载该包 import netscape.javascript.*;
- ejb返回值的问题:)谢谢!!
- collection返回的倒底是什么东西?是数据集吗?还是指向数据集的对象?还是...
- 再求个用s2sh做的客户关系管理系统
- 如何查出未关闭的连接池?
但是程序并没有运行到getWriter()这一步啊,我在运行到这一步的时候加了断点,也加了输出观察,都没有运行到。
public class SSHFlex extends ActionSupport implements ModelDriven<Object>,ServletRequestAware {
protected void initAction() {
this.response.setCharacterEncoding("utf-8");
this.response.setContentType("text/html,charset=utf-8");
try {
this.request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
this.out = this.response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String sayHello(String name) {
System.out.println("initAction");
initAction();
System.out.println("initAction end")
if(name == null || "".equals(name)) {
return "请告诉我你的名字!";
}
return "hello " + name;
}
}在执行initAction()之前,理论上先打印出"initAction",但是却没有打印,说明代码没有执行到这信方法内就报错了。
会不会与我这个类实现了ServletRequestAware这个接口有关啊?
晚上回去我重新建一个类来测试一下!
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/
怎样, 给点建议