springside4(spring4.2.5) 整合 flex(blazeds)
来源:互联网 发布:网络歌手臻言图片 编辑:程序博客网 时间:2024/05/23 10:51
springside4(spring4.2.5) 整合 flex(blazeds)
1 pom.xml 添加依赖包
<!-- https://mvnrepository.com/artifact/org.springframework.flex/spring-flex-core -->
<dependency>
<groupId>org.springframework.flex</groupId>
<artifactId>spring-flex-core</artifactId>
<version>1.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-proxy</artifactId>
<version>4.0.0.14931</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-core</artifactId>
<version>4.0.0.14931</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-remoting</artifactId>
<version>4.0.0.14931</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-common</artifactId>
<version>4.0.0.14931</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-opt</artifactId>
<version>4.0.0.14931</version>
</dependency>
<dependency>
<groupId>com.adobe.blazeds</groupId>
<artifactId>blazeds-rds-server</artifactId>
<version>4.0.0.14931</version>
</dependency>
如果maven中央中央库无法下载可以到这里下载本地jar包然后手动打包到maven中中央库。
http://download.csdn.net/detail/muzili90s/9627781
2 拷贝 blazeds /flex 下所有的文件到项目到项目web-inf/flex
可以在这里下载到flex配置文件
http://download.csdn.net/detail/muzili90s/9627781
messaging-config.xml
proxy-config.xml
remoting-config.xml
services-config.xml
version.properties
3 修改 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>myspring</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext.xml,
classpath*:/applicationContext-shiro.xml
</param-value>
</context-param>
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>production</param-value>
</context-param>
<context-param>
<param-name>flex.class.path</param-name>
<param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>flex.messaging.HttpFlexSession</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>openEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>sitemeshFilter</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemeshFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- MessageBroker Servlet -->
<servlet>
<servlet-name>MessageBrokerServlet</servlet-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>
<init-param>
<param-name>flex.write.path</param-name>
<param-value>/WEB-INF/flex</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>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/WEB-INF/views/error/500.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/views/error/500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/error/404.jsp</location>
</error-page>
</web-app>
4 测试
package com.bceapp.springbbs.myspring.service.test;
import org.springframework.stereotype.Component;
@Component
public class FlexServiceTest {
private static int num = 0;
public String getHello() {
System.out.println("In Here");
num ++;
return "You are In Java Service" + num;
}
public String showInputVal(String input) {
System.out.println("Input Here");
num++;
return "You Input Value: " + input + "; Num:" + num;
}
}
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function button1_clickHandler(event:MouseEvent):void
{
this.remoteObject.getName();
}
protected function remoteObject_faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.toString());
}
protected function getNameResultsHandler(event:ResultEvent):void
{
Alert.show(event.result.toString());
}
protected function servFlex_resultHandler(event:ResultEvent):void
{
// TODO Auto-generated method stub
// Alert.show("OK: "+event.result, "Msg");
}
protected function servFlex_faultHandler(event:FaultEvent):void
{
// TODO Auto-generated method stub
// Alert.show("OK: "+event.fault, "Msg");
}
protected function button2_clickHandler(event:MouseEvent):void
{
this.servFlex.getHello();
}
protected function getNameResultsHandler2(event:ResultEvent):void
{
Alert.show(event.result.toString());
}
]]>
</fx:Script>
<fx:Declarations>
<!-- -->
<s:RemoteObject id="servFlex" destination="javaService" result="servFlex_resultHandler(event)" fault="servFlex_faultHandler(event)" >
<s:method name="getHello" result="getNameResultsHandler2(event)"/>
</s:RemoteObject>
</fx:Declarations>
<s:Button x="51" y="35" label="1" click="button1_clickHandler(event)"/>
<s:Button x="151" y="35" label="2" click="button2_clickHandler(event)"/>
</s:Application>
直接使用spring拦截flex请求有问题,spring4.2.5和blazeds 有冲突
如果有牛人把这个问题解决了 请告诉我。不胜感激
忘了最重要的一步了
添加server remote
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService">
<adapters>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="javaService">
<properties>
<source>com.bceapp.springbbs.myspring.service.test.FlexServiceTest</source>
</properties>
</destination>
</service>
--------------------------------------------------------------------------------------------------------------
flex 调用 spring
6 增加一个spring的工厂类
packagecom.bceapp.springbbs.myspring.web.flex;
importorg.springframework.context.ApplicationContext;
importorg.springframework.web.context.support.WebApplicationContextUtils;
importorg.springframework.beans.BeansException;
importorg.springframework.beans.factory.NoSuchBeanDefinitionException;
importflex.messaging.FactoryInstance;
importflex.messaging.FlexFactory;
importflex.messaging.config.ConfigMap;
importflex.messaging.services.ServiceException;
publicclassSpringFactoryimplementsFlexFactory
{
privatestaticfinalStringSOURCE= "source";
publicvoidinitialize(Stringid, ConfigMapconfigMap) {}
publicFactoryInstance createFactoryInstance(Stringid, ConfigMapproperties)
{
SpringFactoryInstanceinstance= new SpringFactoryInstance(this,id,properties);
instance.setSource(properties.getPropertyAsString(SOURCE,instance.getId()));
returninstance;
}// end method createFactoryInstance()
publicObject lookup(FactoryInstanceinst)
{
SpringFactoryInstancefactoryInstance= (SpringFactoryInstance)inst;
returnfactoryInstance.lookup();
}
staticclassSpringFactoryInstanceextendsFactoryInstance
{
SpringFactoryInstance(SpringFactoryfactory, Stringid, ConfigMapproperties)
{
super(factory,id,properties);
}
publicString toString()
{
return"SpringFactory instance for id="+ getId() +" source="+ getSource() +" scope="+ getScope();
}
publicObject lookup()
{
ApplicationContextappContext= WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());
StringbeanName= getSource();
try
{
returnappContext.getBean(beanName);
}
catch(NoSuchBeanDefinitionExceptionnexc)
{
ServiceExceptione= new ServiceException();
Stringmsg= "Spring service named '" + beanName + "' does not exist.";
e.setMessage(msg);
e.setRootCause(nexc);
e.setDetails(msg);
e.setCode("Server.Processing");
throwe;
}
catch(BeansExceptionbexc)
{
ServiceExceptione= new ServiceException();
Stringmsg= "Unable to create Spring service named '"+ beanName + "' ";
e.setMessage(msg);
e.setRootCause(bexc);
e.setDetails(msg);
e.setCode("Server.Processing");
throwe;
}
}
}
}
7在services-config中增加一个spring工厂
<factories>
<factoryid="springFactory"class="com.bceapp.springbbs.myspring.web.flex.SpringFactory"/>
</factories>
8 在remoting-config中增加一个destination
<destinationid="javaService">
<properties>
<factory>springFactory</factory>
<!-- 这里只定义名字 会在spring容器里找到bean 注解方式为类名第一个字母小写-->
<source>testUserMybatisService</source>
</properties>
</destination>
至此flex整合spring4完成。
0 0
- springside4(spring4.2.5) 整合 flex(blazeds)
- BlazeDS 整合 Flex
- 基于restful注解(spring4.0.2整合flex+blazeds+spring-mvc)
- Flex Spring JAVA BLAZEDS整合
- Flex+BlazeDS整合J2EE实例
- Flex+BlazeDS整合J2ee示例
- Flex+BlazeDS整合J2ee示例
- Flex+BlazeDS整合J2EE实例
- BlazeDS 整合 Flex HelloWorld 示例
- Flex+BlazeDS整合J2EE实例
- Flex+BlazeDS整合J2ee示例
- 整合FLEX+GAE+JAVA+BlazeDS
- BlazeDS 整合 Flex HelloWorld 示例
- Flex之旅--Flex+BlazeDS+Spring整合
- 整合Flex+struts+BlazeDS+tomcat+mysql
- flex整合blazeds,spring,hibernate应用
- Flex+blazeDS+Spring+Tomcat的整合
- Flex+BlazeDS+Spring+Hibernate架构整合示例
- 一个简单的脚本守护进程
- linux-window映射
- jstl 常用例子
- H5移动端知识点总结(四)
- 利用phoenix进行Hbase数据访问
- springside4(spring4.2.5) 整合 flex(blazeds)
- SlickEdit简单实用教程
- LR 与 SVM 的相同和不同
- [HAOI2007]反素数ant
- 老子要开始写博客了!
- SIP 介绍
- linux i2c子系统代码分析9---i2c设备的注册方法
- python 字符串和编码常用函数
- [HAOI2007]反素数ant