- 浏览: 119873 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhouhaiyang88:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
xurichusheng:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
wgcooo:
javax.naming.NameNotFoundExcept ...
ActiveMq-JMS简单实例使用tomcat -
huang-tao:
你好,在吗?请问,我启动Tomcat时报如下错,是什么原因?= ...
ActiveMq-JMS简单实例使用tomcat -
Eric.Yan:
好文章,明天试一试
ActiveMq-JMS简单实例使用tomcat
内容如下
关于Adobe Flex
关于Spring
为什么使用Flex和Spring
Flex和Spring的整合
关于Flex
Adobe Flex是一套创建富客户端应用(RIAs)的框架.Flex生成的swf文件可以直接运行在Flash Player之中。相比较基于时间轴的Flash开发,Flex框架更适合那些用传统方式开发应用程序的开发人员。Flex应用可以使用Flex builder来开发。这套IDE是基于Eclipse平台开发的。Action Script3语言是用来访问数据和创建用户接口组件的。Flex框架也用到了一种XML语言叫做MXML,它是用来简化Flex开发和布局的。
关于Spring
Spring是目前最受欢迎的创建企业级应用的Java框架。不像传统的J2EE开发,Spring提供了轻量级的容器。使用Spring会使应用的测试和开发更为简单。虽然Spring依赖注入的功能最出名,但是它也提供了其他服务端企业程序所需要的功能。如安全和事务处理。
为什么使用Flex和Spring
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。有许多应用都是以Java为后端处理的。Flex用于前端。由于Java和Flex一起频繁的使用。人们很容易就想到Flex和Spring的整合。有许多企业和组织已经着手开始使用Flex作为用户接口了。在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。为Java和Spring添加更好的Flex支持。
默认的情况下BlazeDS创建了一个服务端Java对象的实例,用它们来完成远程对象的请求。但是这种方法并不适用于Spring.因为整个框架使用的服务的对象都是用Spring容器所创建的。Spring和BlazeDS的整合,Flex就可以使用Spring中的对象了。
整合Flex和Spring
为了使用BlazeDS,服务端的Java应用应打包为WAR文件。这部分的代码实例是使用Eclipse来创建和编辑的。步骤如下
设置服务端的BlazeDS Java工程以及Spring框架。
在BlazeDS中配置Spring的bean
写一个Flex应用去使用Spring/BlazeDS的服务。
所需要的开发环境如下
Eclipse3.4(J2EE版本):http://www.eclipse.org/downloads/
Flex Builder3:http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email&sdid=EOZPI
Tomcat 6:http://tomcat.apache.org/
BlazeDS:http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/
Spring框架:http://www.springsource.org/download
Spring BlazeDS整合:http://www.springsource.org/spring-flex
ANTLR3.0:http://www.antlr.org/download.html
首先设置服务端的JAVA工程,用blazeds.war(在blazeds的压缩包中)创建一个WEB工程。步骤如下
Choose File>import
选择WAR选项。指定blazedsWAR文件的位置。输入工程名test-server
点击完成
现在就可以创建一个服务器来运行这个WEB应用。
File>New>Other
选择Server>Server
点击Next
选择Apache>Tomcat6 Server
点击Next
指定Tomcat的安装位置以及JRE(5以上版本)
点击Next
在Availble Projects list中选择test-server
点击Add添加到Configured Project list
点击Finish
接下来就可以创建Java类了。这个类在Java和Flex之间传输
Java代码
public class MyEntity {
private String frstName;
private String lastName;
private String emailAddress;
public String getFirstName() {
return frstName;
}
public void setFirstName(String frstName) {
this.frstName = frstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
public class MyEntity {
private String frstName;
private String lastName;
private String emailAddress;
public String getFirstName() {
return frstName;
}
public void setFirstName(String frstName) {
this.frstName = frstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
Java服务接口
Java代码
import java.util.List;
public interface MyService {
public List<MyEntity> getMyEntities();
}
import java.util.List;
public interface MyService {
public List<MyEntity> getMyEntities();
}
Java服务的实现
Java代码
import java.util.ArrayList;
import java.util.List;
public class MyServiceImpl implements MyService {
public List<MyEntity> getMyEntities() {
List<MyEntity> list = new ArrayList<MyEntity>();
MyEntity entity = new MyEntity();
entity.setFirstName("Hello");
entity.setLastName("World");
entity.setEmailAddress("hello@world.com");
list.add(entity);
MyEntity entity2 = new MyEntity();
entity2.setFirstName("Hello");
entity2.setLastName("Space");
entity2.setEmailAddress("hello@space.com");
list.add(entity2);
MyEntity entity3 = new MyEntity();
entity3.setFirstName("Hello");
entity3.setLastName("Neighbor");
entity3.setEmailAddress("hello@neighbor.com");
list.add(entity3);
return list;
}
}
import java.util.ArrayList;
import java.util.List;
public class MyServiceImpl implements MyService {
public List<MyEntity> getMyEntities() {
List<MyEntity> list = new ArrayList<MyEntity>();
MyEntity entity = new MyEntity();
entity.setFirstName("Hello");
entity.setLastName("World");
entity.setEmailAddress("hello@world.com");
list.add(entity);
MyEntity entity2 = new MyEntity();
entity2.setFirstName("Hello");
entity2.setLastName("Space");
entity2.setEmailAddress("hello@space.com");
list.add(entity2);
MyEntity entity3 = new MyEntity();
entity3.setFirstName("Hello");
entity3.setLastName("Neighbor");
entity3.setEmailAddress("hello@neighbor.com");
list.add(entity3);
return list;
}
}
这三个类对于例子足够了。在实战中,这个服务类可能要连接到数据库。为了方便我们学习,这个例子中就返回的是个list的硬编码了。
基本的java工程算是完工了。。
接下来我们要做Spring的配置了。
把Spring的库以及Spring BlazeDS整合的库,还有ANTLR库文件放到项目/WEB-INF/lib下。
创建一个Spring配置文件。鼠标右键点击WebContent/WEB-INF以及选择New>File,文件名输入application-config.xml.点击完成。配置文件内容如下。
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
</beans>
懂Spring的人看这配置最熟悉不过了。。
通过这一步,已经有了一个BlazeDS默认配置的Java web工程。下面我们就更改BlazeDS默认配置,去使用新创建的Spring中的bean.
为了配置Spring BlazeDS的整合,更新web.xml。
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"
id="WebApp_ID" version="2.5">
<display-name>test-server</display-name>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
</web-app>
<?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"
id="WebApp_ID" version="2.5">
<display-name>test-server</display-name>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
</web-app>
创建的Servlet可以处理这个请求,http://localhost:8080/test-server/spring
这是访问BlazeDS的基本的URL。当然这也是Spring标准的DispatcherServlet.
现在已经把Spring整合到Java web工程中了。要整合BlazeDS,就要修改下Spring的配置文件。
application-config.xml文件如下
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flex="http://www.springframework.org/schema/flex"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
<!-- Simplest possible message broker -->
<flex:message-broker/>
<!-- exposes myService as BlazeDS destination -->
<flex:remoting-destination ref="myService" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flex="http://www.springframework.org/schema/flex"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
<!-- Simplest possible message broker -->
<flex:message-broker/>
<!-- exposes myService as BlazeDS destination -->
<flex:remoting-destination ref="myService" />
</beans>
通过配置,使BlazeDS接口开放。首先要添加Flex的namespace。添加之后,使用message-broker标签创建MessageBrokerFactoryBean。看下配置只是个简单标签。配置是默认的。要确保WEB-INF/flex 下有service-config.xml这个配置文件。remoting-destination标签使Spring bean变为远程目标。
接下来修改默认的BlazeDS service-config.xml文件。代码如下
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<default-channels>
<channel ref="my-amf" />
</default-channels>
</services>
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
<channel-definition id="my-polling-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amfpolling"
class="flex.messaging.endpoints.AMFEndpoint" />
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>4</polling-interval-seconds>
</properties>
</channel-definition>
</channels>
</services-config>
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<default-channels>
<channel ref="my-amf" />
</default-channels>
</services>
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
<channel-definition id="my-polling-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amfpolling"
class="flex.messaging.endpoints.AMFEndpoint" />
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>4</polling-interval-seconds>
</properties>
</channel-definition>
</channels>
</services-config>
看一下 endpoint标签的的url.唯一可以修改的就是content.root之后的spring.所有远程目标配置都应该配置在application-config.xml文件中。
现在我们完成了Spring/BlazeDS Java应用。可以启动Tomcat来查看配置是否出错。
接下来我们就可以新建一个Flex来远程调用Spring服务。步骤如下
File>New>Other
选择Flex Project
填写工程名称test-flex
用默认的地址
选择Web application(运行在Flash player)
Application Type 选择None
点击Next
指定Output的文件夹。如 C:\workspace\test-server\WebContent\
点击Finish
工程创建完毕,我们会看到一个main.mxml的文件。修改代码如下
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="srv.getMyEntities()">
<mx:AMFChannel id="myamf" uri="/test-server/spring/messagebroker/amf"/>
<mx:ChannelSet id="channelSet" channels="{[myamf]}"/>
<mx:RemoteObject id="srv"
destination="myService" channelSet="{channelSet}"/>
<mx:DataGrid dataProvider="{srv.getMyEntities.lastResult}"/>
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="srv.getMyEntities()">
<mx:AMFChannel id="myamf" uri="/test-server/spring/messagebroker/amf"/>
<mx:ChannelSet id="channelSet" channels="{[myamf]}"/>
<mx:RemoteObject id="srv"
destination="myService" channelSet="{channelSet}"/>
<mx:DataGrid dataProvider="{srv.getMyEntities.lastResult}"/>
</mx:Application>
以上代码的AMFChannel访问了Spring的服务。
要注意的是RemoteObject标签中的destination的destination要和spring的application-config.xml中remote-service标签的ref所设置的值保持一致。通过代码可以看出Flex并没有包含关于Spring的东西。编写Flex的
开发人员不必知道关于Spring的知识。
要更新test-server的程序。可以Refresh这个工程。
下面测试一下。启动Tomcat.http://localhost:8080/test-server/main.html
为了在Flex builder中调试运行。可以做如下设置
右键点击test-flex工程。
选择Properties,之后是Flex build path
Output Folder URL 填写 http://localhost:8080/test-server/
点击OK
之后直接运行就可以了。整合完成。
关于Adobe Flex
关于Spring
为什么使用Flex和Spring
Flex和Spring的整合
关于Flex
Adobe Flex是一套创建富客户端应用(RIAs)的框架.Flex生成的swf文件可以直接运行在Flash Player之中。相比较基于时间轴的Flash开发,Flex框架更适合那些用传统方式开发应用程序的开发人员。Flex应用可以使用Flex builder来开发。这套IDE是基于Eclipse平台开发的。Action Script3语言是用来访问数据和创建用户接口组件的。Flex框架也用到了一种XML语言叫做MXML,它是用来简化Flex开发和布局的。
关于Spring
Spring是目前最受欢迎的创建企业级应用的Java框架。不像传统的J2EE开发,Spring提供了轻量级的容器。使用Spring会使应用的测试和开发更为简单。虽然Spring依赖注入的功能最出名,但是它也提供了其他服务端企业程序所需要的功能。如安全和事务处理。
为什么使用Flex和Spring
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。有许多应用都是以Java为后端处理的。Flex用于前端。由于Java和Flex一起频繁的使用。人们很容易就想到Flex和Spring的整合。有许多企业和组织已经着手开始使用Flex作为用户接口了。在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。为Java和Spring添加更好的Flex支持。
默认的情况下BlazeDS创建了一个服务端Java对象的实例,用它们来完成远程对象的请求。但是这种方法并不适用于Spring.因为整个框架使用的服务的对象都是用Spring容器所创建的。Spring和BlazeDS的整合,Flex就可以使用Spring中的对象了。
整合Flex和Spring
为了使用BlazeDS,服务端的Java应用应打包为WAR文件。这部分的代码实例是使用Eclipse来创建和编辑的。步骤如下
设置服务端的BlazeDS Java工程以及Spring框架。
在BlazeDS中配置Spring的bean
写一个Flex应用去使用Spring/BlazeDS的服务。
所需要的开发环境如下
Eclipse3.4(J2EE版本):http://www.eclipse.org/downloads/
Flex Builder3:http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email&sdid=EOZPI
Tomcat 6:http://tomcat.apache.org/
BlazeDS:http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/
Spring框架:http://www.springsource.org/download
Spring BlazeDS整合:http://www.springsource.org/spring-flex
ANTLR3.0:http://www.antlr.org/download.html
首先设置服务端的JAVA工程,用blazeds.war(在blazeds的压缩包中)创建一个WEB工程。步骤如下
Choose File>import
选择WAR选项。指定blazedsWAR文件的位置。输入工程名test-server
点击完成
现在就可以创建一个服务器来运行这个WEB应用。
File>New>Other
选择Server>Server
点击Next
选择Apache>Tomcat6 Server
点击Next
指定Tomcat的安装位置以及JRE(5以上版本)
点击Next
在Availble Projects list中选择test-server
点击Add添加到Configured Project list
点击Finish
接下来就可以创建Java类了。这个类在Java和Flex之间传输
Java代码
public class MyEntity {
private String frstName;
private String lastName;
private String emailAddress;
public String getFirstName() {
return frstName;
}
public void setFirstName(String frstName) {
this.frstName = frstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
public class MyEntity {
private String frstName;
private String lastName;
private String emailAddress;
public String getFirstName() {
return frstName;
}
public void setFirstName(String frstName) {
this.frstName = frstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
}
Java服务接口
Java代码
import java.util.List;
public interface MyService {
public List<MyEntity> getMyEntities();
}
import java.util.List;
public interface MyService {
public List<MyEntity> getMyEntities();
}
Java服务的实现
Java代码
import java.util.ArrayList;
import java.util.List;
public class MyServiceImpl implements MyService {
public List<MyEntity> getMyEntities() {
List<MyEntity> list = new ArrayList<MyEntity>();
MyEntity entity = new MyEntity();
entity.setFirstName("Hello");
entity.setLastName("World");
entity.setEmailAddress("hello@world.com");
list.add(entity);
MyEntity entity2 = new MyEntity();
entity2.setFirstName("Hello");
entity2.setLastName("Space");
entity2.setEmailAddress("hello@space.com");
list.add(entity2);
MyEntity entity3 = new MyEntity();
entity3.setFirstName("Hello");
entity3.setLastName("Neighbor");
entity3.setEmailAddress("hello@neighbor.com");
list.add(entity3);
return list;
}
}
import java.util.ArrayList;
import java.util.List;
public class MyServiceImpl implements MyService {
public List<MyEntity> getMyEntities() {
List<MyEntity> list = new ArrayList<MyEntity>();
MyEntity entity = new MyEntity();
entity.setFirstName("Hello");
entity.setLastName("World");
entity.setEmailAddress("hello@world.com");
list.add(entity);
MyEntity entity2 = new MyEntity();
entity2.setFirstName("Hello");
entity2.setLastName("Space");
entity2.setEmailAddress("hello@space.com");
list.add(entity2);
MyEntity entity3 = new MyEntity();
entity3.setFirstName("Hello");
entity3.setLastName("Neighbor");
entity3.setEmailAddress("hello@neighbor.com");
list.add(entity3);
return list;
}
}
这三个类对于例子足够了。在实战中,这个服务类可能要连接到数据库。为了方便我们学习,这个例子中就返回的是个list的硬编码了。
基本的java工程算是完工了。。
接下来我们要做Spring的配置了。
把Spring的库以及Spring BlazeDS整合的库,还有ANTLR库文件放到项目/WEB-INF/lib下。
创建一个Spring配置文件。鼠标右键点击WebContent/WEB-INF以及选择New>File,文件名输入application-config.xml.点击完成。配置文件内容如下。
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
</beans>
懂Spring的人看这配置最熟悉不过了。。
通过这一步,已经有了一个BlazeDS默认配置的Java web工程。下面我们就更改BlazeDS默认配置,去使用新创建的Spring中的bean.
为了配置Spring BlazeDS的整合,更新web.xml。
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"
id="WebApp_ID" version="2.5">
<display-name>test-server</display-name>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
</web-app>
<?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"
id="WebApp_ID" version="2.5">
<display-name>test-server</display-name>
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/application-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map /spring/* requests to the DispatcherServlet -->
<servlet-mapping>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<url-pattern>/spring/*</url-pattern>
</servlet-mapping>
</web-app>
创建的Servlet可以处理这个请求,http://localhost:8080/test-server/spring
这是访问BlazeDS的基本的URL。当然这也是Spring标准的DispatcherServlet.
现在已经把Spring整合到Java web工程中了。要整合BlazeDS,就要修改下Spring的配置文件。
application-config.xml文件如下
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flex="http://www.springframework.org/schema/flex"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
<!-- Simplest possible message broker -->
<flex:message-broker/>
<!-- exposes myService as BlazeDS destination -->
<flex:remoting-destination ref="myService" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flex="http://www.springframework.org/schema/flex"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/flex
http://www.springframework.org/schema/flex/spring-flex-1.0.xsd">
<!-- Spring Beans’s -->
<bean id="myService" class="MyServiceImpl" />
<!-- Simplest possible message broker -->
<flex:message-broker/>
<!-- exposes myService as BlazeDS destination -->
<flex:remoting-destination ref="myService" />
</beans>
通过配置,使BlazeDS接口开放。首先要添加Flex的namespace。添加之后,使用message-broker标签创建MessageBrokerFactoryBean。看下配置只是个简单标签。配置是默认的。要确保WEB-INF/flex 下有service-config.xml这个配置文件。remoting-destination标签使Spring bean变为远程目标。
接下来修改默认的BlazeDS service-config.xml文件。代码如下
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<default-channels>
<channel ref="my-amf" />
</default-channels>
</services>
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
<channel-definition id="my-polling-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amfpolling"
class="flex.messaging.endpoints.AMFEndpoint" />
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>4</polling-interval-seconds>
</properties>
</channel-definition>
</channels>
</services-config>
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<default-channels>
<channel ref="my-amf" />
</default-channels>
</services>
<channels>
<channel-definition id="my-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amf"
class="flex.messaging.endpoints.AMFEndpoint" />
</channel-definition>
<channel-definition id="my-polling-amf"
class="mx.messaging.channels.AMFChannel">
<endpoint
url="http://{server.name}:{server.port}/{context.root}/spring/messagebroker/amfpolling"
class="flex.messaging.endpoints.AMFEndpoint" />
<properties>
<polling-enabled>true</polling-enabled>
<polling-interval-seconds>4</polling-interval-seconds>
</properties>
</channel-definition>
</channels>
</services-config>
看一下 endpoint标签的的url.唯一可以修改的就是content.root之后的spring.所有远程目标配置都应该配置在application-config.xml文件中。
现在我们完成了Spring/BlazeDS Java应用。可以启动Tomcat来查看配置是否出错。
接下来我们就可以新建一个Flex来远程调用Spring服务。步骤如下
File>New>Other
选择Flex Project
填写工程名称test-flex
用默认的地址
选择Web application(运行在Flash player)
Application Type 选择None
点击Next
指定Output的文件夹。如 C:\workspace\test-server\WebContent\
点击Finish
工程创建完毕,我们会看到一个main.mxml的文件。修改代码如下
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="srv.getMyEntities()">
<mx:AMFChannel id="myamf" uri="/test-server/spring/messagebroker/amf"/>
<mx:ChannelSet id="channelSet" channels="{[myamf]}"/>
<mx:RemoteObject id="srv"
destination="myService" channelSet="{channelSet}"/>
<mx:DataGrid dataProvider="{srv.getMyEntities.lastResult}"/>
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="srv.getMyEntities()">
<mx:AMFChannel id="myamf" uri="/test-server/spring/messagebroker/amf"/>
<mx:ChannelSet id="channelSet" channels="{[myamf]}"/>
<mx:RemoteObject id="srv"
destination="myService" channelSet="{channelSet}"/>
<mx:DataGrid dataProvider="{srv.getMyEntities.lastResult}"/>
</mx:Application>
以上代码的AMFChannel访问了Spring的服务。
要注意的是RemoteObject标签中的destination的destination要和spring的application-config.xml中remote-service标签的ref所设置的值保持一致。通过代码可以看出Flex并没有包含关于Spring的东西。编写Flex的
开发人员不必知道关于Spring的知识。
要更新test-server的程序。可以Refresh这个工程。
下面测试一下。启动Tomcat.http://localhost:8080/test-server/main.html
为了在Flex builder中调试运行。可以做如下设置
右键点击test-flex工程。
选择Properties,之后是Flex build path
Output Folder URL 填写 http://localhost:8080/test-server/
点击OK
之后直接运行就可以了。整合完成。
- Spring_BlazeDS_Integration.rar (491.3 KB)
- 下载次数: 167
发表评论
-
事件机制
2011-05-23 17:22 944事件机制的工作流程 个人注解:当触发事件后,fl ... -
RegExp --正则表达式
2011-05-23 09:35 2670RegExp 类允许使用正则表达式(即可用于在字符串中执行搜索 ... -
Action Script 核心API
2011-05-23 09:02 872Math复杂的数学运算的静态工具类; Stage类动态 ... -
FLEX的强引用和弱引用问题weak reference
2011-05-19 10:29 1396关键字: 强引用,弱引用 今天看到篇关于flex( ... -
Flash到HTML5的一键转换工具
2011-05-05 13:31 1105Adobe 今日发布了Flash 到 HTML5的一键转换工具 ... -
Flex开发者应该知道的十件事
2011-05-05 13:22 764Michael Portuesi发表了一篇 ... -
Flash平台开发者技能树
2011-05-05 13:19 980(点击图片查看完整版 ... -
Flash builder 4中使用SVN的两种方法
2011-05-05 11:57 4966通用方法一:Flash builder 4是基于Eclip ... -
Degrafa学习一,(含SDK4.0兼容版本及源码,略微有所修改)
2011-04-27 21:54 1709我们在学习Degrafa之前首先应该了解Flex和Flash画 ... -
AS3及Flex的百条常用知识
2011-04-24 13:57 832【改变输出swf的尺度, ... -
PureMVC总结(附Hello World含PureMVC源码代码和文档)
2011-04-22 15:18 1392PureMVC总的流程是: Faça ... -
Adobe Flex迷你教程 -- 合理使用Module分割项目以及对Module的使用
2011-03-18 13:58 857现在说说Module,这篇教 ... -
(转)moduleVScomponent
2011-03-18 13:25 810今天要记录一下技术上的事情,根据我这两个月来的学习把modul ... -
cairngorm框架module学习三
2011-03-05 11:13 803。。。待续 -
cairngorm框架module学习二
2011-03-05 11:12 899。。。待续 -
cairngorm框架module学习一
2011-03-05 11:11 898。。。。待续 -
Cairngorm文档--模块化示例程序解读
2011-03-03 15:22 1143模块化示例程序解读 A ... -
Cairngorm 框架
2011-03-02 16:39 929Cairngorm是已知的最为古 ...
相关推荐
flex-spring-blazeds demo
Flex Spring JAVA BLAZEDS整合,永固整合将flex与Spring整合
Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring
Spring BlazeDS Integration
Spring BlazeDS Integration 1.0.0
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Spring BlazeDS Integration,Flex通过remoteObject与java通讯,附带例子 文档
NULL 博文链接:https://chenhuiggggg.iteye.com/blog/1994009
1 32 跟我StepByStep学FLEX教程------Demo14Flex+Spring+Hibernate整合 1 33 跟我StepByStep学FLEX教程------Caringorm之简介 1 34 跟我StepByStep学FLEX教程------MVC 1 35 跟我StepByStep学FLEX教程------...
Flex技术本身和Java就有很强的关联性,它提供了一个基于Eclipse的IDE和BlazeDS.BlazeDS是个基于服务端的Java远程调用和Web消息的一个开源的技术。...在2008年末,Spring社区已经着手Spring BlazeDS整合的项目。
Flex Spring BlazeDS整个web工程,其中FlexServer是整合后的myeclipse web project工程,FlexText是Flex测试工程。在tomcat中运行测试无误。
前言:本讲是继【第三讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6】后,介绍另外一种集成方式; 集成方式二:采用Spring侦听配置模式 目标:实现集成方式二 优点: 1、一个应用可以满足多种请求 2、易于集成...
flex插件安装;flex与java--Blazeds学习(配置)详解。
前言:本讲是在【第三讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6】方式二的基础上添加iBatis,此次集成其实质是Spring与iBatis的整合而已 目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4 再需...
blazeds4整合spring3 这是我新近研究的方法 与整合spring2.5以下的方法有不同了,(看过一些教程觉得不是很好,用起来不顺手) 最终参考了官方的sample,得到了这个不错的整合方法。 把要用blazeds公开给flex的java...
前言:本讲是在【第四讲:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4】的基础上添加iBatis,此次集成其实质是Spring与Struts2的整合而已 目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+...
Spring和Adobe Flex的开发技术文档。
j2ee建工程需要的flex.war flex.war&blazeds.war&samples.war&flex-admin.war