flex java 整合_springMVC与flex 整合

本文档记录了将Spring MVC与Flex整合的过程,包括配置Spring MVC、导入BlazeDS库、调整web.xml、配置spring的application-mvc.xml文件以及解决可能出现的404错误和HandlerMapping问题。详细介绍了每个步骤和注意事项,适合新手参考。
摘要由CSDN通过智能技术生成

由于最近新做的项目里有用到flex做图形展示,而之前的项目都是用springMVC搭的框架,而spring有支持flex的jar包,于是就想搭这个环境,由于网上关于spring与flex搭配环境的文章太少,英文原文档又看不懂,结果花了一天时间,终于搞定。在这里记录下新手遇到的错误及解决方法。

spring  jar包: spring-3.2,flex用的是:blazeds-turnkey-4.0.1;

第一步,配置springMVC

web.xml的其他配置的spring信息就不贴了,在这只贴了新手在做flex时疑惑的代码

spring mvc servlet

springMvc

org.springframework.web.servlet.DispatcherServlet

spring mvc 配置文件

contextConfigLocation

classpath:applicationContext-mvc.xml

1

springMvc

*.htm

这里我是手动指定了mvc的配置文件.

其他的application配置文件我就不贴了。

后台测试的java代码:

@Controller

@RequestMapping("/general")

public class GeneralController {

@RequestMapping(params="index")

public String index(){

System.out.println("index");

return "index";

}

}

这里我是用annotation方式配置,因为后面有个错误会用户,所以贴出来

到这里,springMVC的配置没有任何错误或异常。

第二步配置flex:

1.首先我们导入flex需要的配置文件及jar包。找到:blazeds-turnkey-4.0.1.zip,解压之后,里面的tomcat的webapps里会有几个项目文件,其中有两个是关于与spring整合的实例代码:samples-spring与blazeds-spring,在这里新手需要特别注意, 若取samples-spring里的配置文件,里面要用到spring-security框架,对应不了解该框架或不需要用该框架的千万别获取它的services-config.xml文件,否则会很头痛。我们将blazeds-spring\WEB-INF\flex里的xml文件去不复制到自己项目下的WEB-INF\flex文件夹下,然后再去samples-spring\WEB-INF\lib文件夹中取出相应的jar包,由于我们项目的spring框架已经搭建了,所以不用再去里面的spring相应的jar包,但要找到里面的org.springframework.flex-1.X.X的jar包,以及flex-messaging-XXX.jar、backport-util-concurrent-XX.jar

commons-XXXX.jar。将他们复制到自己项目的lib文件夹下。

2.配置web.xml

在原有的基础配置信息不变下,加入代码:

springMvc

/messagebroker/*

而网上的文章里却直接将   *.htm的servlet-mapping的配置给去掉了,那样的话之前配置的MVC且不是不用了?

3.配置spring的application-mvc.xml文件

在配置该文件之前贴下我将需要用到的测试后台类代码:

@Controller("flexGeneralController")

@RemotingDestination(value="flexGeneralController",channels="my-amf")

public class FlexGeneralController {

@RemotingInclude

public String getName(){

return "hello";

}

}

按照网上所言,用@RemotingDestination注解,这样不用去配置文件里设置

再按照网上所说,配置application-mvc.xml文件

当然,头部要加上flex的xsd。这个可以去samples-spring里的flex-servlet.xml文件里去复制。

按照网上所言,spring配置文件及web.xml都已经配置完成,可是我们现在再去测试http://127.0.0.1:8080/springFlex/general?index时,却提示404错误,再没配置之前flex之前都是正确的,于是我又逆向测试,发现当我删除时,访问是没问题的,于是debug进入spring源码,发现当我们加入它时,handlerMapping里就只有simpleUrlHandlerMapping,而这个handlerMapping是去不到我们所注册的bean的,去掉的它的话,就有spring默认的BeanNameUrlHandlerMapping与DefaultAnnotationHandlerMapping,网上找了些关于spring

handlerMapping发现,当系统没有配置handlerMapping时,会自动加上后面两个handlerMapping,而flex:message-broker 标签是会默认加上simpleUrlHandlerMapping,如果我们要将flex与springMVC一同使用,则还需要注册BeanNameUrlHandlerMapping与DefaultAnnotationHandlerMapping的bean:

4.调试flex客户端程序

与普通的RemoteObject一样,destination取的是@RemotingDestination注解的名称flexGeneralController,不同的是需要添加endpoint属性:内容信息取flex里的services-config.xml中my-amf的endpoint标签里的url定义,将里面的服务名、端口、项目名称换成对应的测试内容就可以了

在此,全部配置完毕,里面容易出现异常的 是:

第一个:web.xml里配置servlet-mapping不能将MVC的配置去掉,且不用再加上flex测试项目中的flex-servlet.xml文件,因为我们已经自己指定了mvc的配置文件;

第二个也是网上很少提及的配置HandlerMapping的问题

第三个则是客户端 endpoint不要写错,否则访问会是404错误

项目工程也已经上传:springFlex



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值