使用Flex2 + Hessian + Spring 改进一下笔记(二)中的例子。
主要用Spring来替代HessianServlet (其它代码与上例相同,这里就不再重复)
web.xml 代码
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/springconfig/*.xml</param-value>
- </context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
-
- <servlet>
- <servlet-name>remoting</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>remoting</servlet-name>
- <url-pattern>/remoting/*</url-pattern>
- </servlet-mapping>
remoting-servlet.xml 代码
- <beans>
-
- <bean name="/UserService" class="org.springframework.remoting.caucho.HessianServiceExporter">
- <property name="service" ref="userService"/>
- <property name="serviceInterface" value="myhessian.service.UserService"/>
- </bean>
-
- </beans>
applicationContext-service.xml 代码
- <beans>
-
- <bean id="userService" class="myhessian.service.UserServiceImpl">
- </bean>
-
- </beans>
java服务端只需添加上面的spring配置即可,这样就不再需要写HessianServlet了.
而在flex的客户端,只需要修改UserService中的服务地址就行了.
UserService.as 代码
- public class UserService extends BaseService {
-
- private static var _userService : HessianService;
-
- protected static function getUserService():HessianService {
- if (!_userService) {
- _userService = new HessianService("remoting/UserService");
- }
- return _userService;
- }
-
- ...
- }