這是我第一偏的文章
我是初學 FLEX
如同標題所示我一直在找 FLEX 與 JAVA 溝通的管道
Hessian 我選擇了他,簡單易用且支持很多 client 當然最近也支持了 FLEX
要怎麼上手呢看了 Hessian 網站上的範例 hessian.caucho.com/doc/flash.xtp
有了一點基礎但是要實做一個 HessianServlet 總覺得不是很好用
想說我用 spring 用習慣了來看看有沒有解決的方法想到 spring 的文檔 Remoting and web services using Spring
static.springframework.org/spring/docs/2.5.x/reference/remoting.html
剛好有對 hessian 支持
所以馬上來試用 首先當然是設定一些文檔好讓 spring remoting 能夠活起來
web.xml 代码
- <
servlet
>
- <
servlet-name
>
remoting
</
servlet-name
>
- <
servlet-class
>
org.springframework.web.servlet.DispatcherServlet
</
servlet-class
>
- <
load-on-startup
>
1
</
load-on-startup
>
- </
servlet
>
-
- <
servlet-mapping
>
- <
servlet-name
>
remoting
</
servlet-name
>
- <
url-pattern
>
/remoting/*
</
url-pattern
>
- </
servlet-mapping
>
上面的設置是必須的啦通過 servlet 的代理可直接呼叫你的 service
記住 servlet-name 與你下面檔案命名有關當然你也可以自己設定你喜歡對應的文檔名
我喜歡用 default 的值所以我的
servlet-name 為
remoting, spring 到時會去抓取
WEB-INF/remoting-servlet.xml 讀取你設定的 bean
xml 代码
- <
bean
id
=
"accountService"
class
=
"example.AccountServiceImpl"
>
- <
property
name
=
"accountDao"
ref
=
"accountDao"
/>
- </
bean
>
-
- <
bean
name
=
"/AccountService"
class
=
"org.springframework.remoting.caucho.HessianServiceExporter"
>
- <
property
name
=
"service"
ref
=
"accountService"
/>
- <
property
name
=
"serviceInterface"
value
=
"example.AccountService"
/>
- </
bean
>
上面的 /AccountService 就是映射你要訪問的 url 當然你的 url 不是只
/AccountService 還要加上你
servlet-mapping
的 url-pattern
/remoting/*
所以對應的 url 就是 /remoting/AccountService 這就是我們 flex 端要連上的位址
當然你也可以簡化你的
url-pattern 為 /* ,那 URL 就是只對應到
/AccountService
至於 flex 端要怎麼連上來呢 ?
xml 代码
- <
mx:Application
- xmlns:mx
=
"http://www.adobe.com/2006/mxml"
xmlns:word
=
"*"
- implements
=
"mx.rpc.IResponder"
>
-
- <
mx:Script
>
- <
[CDATA[
- import hessian.client.HessianService;
-
- import mx.rpc.AsyncToken;
- import mx.rpc.events.ResultEvent;
-
- private var service:HessianService
=
new
HessianService("remoting/AccountService");
-
- private function getAccount():void
- {
- var token:AsyncToken
=
service
.getAccount.send(va.text);
- token.addResponder(this);
- }
-
- public function result(data:Object):void
- {
- var event : ResultEvent
=
data
as ResultEvent;
- uplogDataGrid.dataProvider
=
event
.result as Array;
- }
-
- public function fault(info:Object):void
- {
-
- }
- ]]>
- </
mx:Script
>
- <
mx:TextInput
x
=
"100"
y
=
"90"
id
=
"va"
text
=
""
/>
- <
mx:Button
x
=
"260"
y
=
"90"
label
=
"Button"
click
=
"getAccount()"
/>
- <
mx:DataGrid
id
=
"aDataGrid"
x
=
"10"
y
=
"120"
width
=
"99%"
/>
- </
mx:Application
>
其實很簡單只要使用
HessianService 去作遠程呼叫即可
先創造一個
HessianService
實例此實例當然要指向你要呼叫的遠端 sevice 的 url
new
HessianService("remoting/AccountService");
然後用其 getOperation("getAccount").send();
以上面為例為
service.getOperation("getAccount").send(va.text);
也可以寫成
service.getAccount.send(va.text);
getAccount 當然是你要呼叫遠端
AccountService 的 getAccount(
String name
);
以下是一些 java
Account.java 代码
- public
class
Account
implements
Serializable{
- private
String name;
-
- public
String getName();
-
- public
void
setName(String name) {
- this
.name = name;
- }
- }
AccountService.
java 代码
- public
interface
AccountService {
-
- public
void
insertAccount(Account account);
-
- public
List getAccounts(String name);
- }
AccountServiceImpl.
java 代码
- public
class
AccountServiceImpl
implements
AccountService {
-
- private
AccountDao accountDao;
-
- private
void
setAccountDao(AccountDao) {
- this
.accountDao = accountDao;
- }
-
- public
void
insertAccount(Account acc) {
-
- }
-
- public
List getAccounts(String name) {
- return accountDao.getAccounts(name);
- }
- }
java 代码
-
- public
class
AccountDaoImpl
implements
AccountDao{
-
- public
void
insertAccount(Account acc) {
-
- }
-
- public
List getAccounts(String name) {
- List list = new
ArrayList();
- Account a = new
Account();
- a.setName(name);
- list.add(a);
- return
list;
- }
- }
分享到:
相关推荐
主要是将《Flex第一步》里使用FDS数据传输改为使用Hessian来实现,一些地方做了些简单的修改。 关于Flex使用Hessian进行远程调用,请参考: Flex + Hessian 学习笔记(一) ...
1.名称:Spring + Hessian + Spring MVC(包括Server和Client).zip 2.来源:自己实现 3.备注:项目有两个系统,包括Server端和Client端,项目已经跑通,可以实现。 4.注意:client中pom.xml里最后的一个jar包,需要...
Flex和Hessian是一种常见的客户端-服务器通信技术组合,用于构建富互联网应用程序(RIA)。这篇学习笔记将深入探讨这两个技术,并通过实例代码解析它们的工作原理。 Flex是Adobe开发的一个开源框架,主要用于创建...
Spring + Mybatis + Hessian 亲自手写,附带测试用例,有问题随时提问。操作流程,自己导入sql,并修改数据库配置,配置Tomcat后启动服务,然后启动Tomcat, 最后测试用例。 测试用例步骤:步骤1.Run HessianTest. ...
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
spring+hessian+maven整合.zip
标题 "OSGI+SpringDM+Hessian" 涉及到三个重要的技术概念,它们分别是OSGI(Open Services Gateway Initiative)、SpringDM(Spring Dynamic Modules)和Hessian。这些技术在Java开发领域中都有其独特的应用和价值。...
本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...
压缩包里有两个 springMVC+Ibatis 的项目:HessianServer(服务器端),HessianClient(客户端),解压导入到MyEclipse 更改配置文件中的数据源,建表(和实体类对应的表),执行客户端中的BasicClient.java文件即可...
完美整合spingMVC+mybatis+hessian+activeMQ+redis,引入mybatis物理分页插件,模拟cookie登陆的工具类。
【标题】:“CXF+RMI+HESSIAN”整合详解 在IT行业中,当我们谈论“CXF+RMI+HESSIAN”时,我们实际上是在讨论三种不同的技术,它们协同工作以实现分布式服务和远程调用。让我们逐一深入了解这三个概念。 首先,CXF...
标题 "外部接口调用 使用spring4+hessian4实例" 提供了一个关于如何使用Spring4框架与Hessian4库实现远程服务调用的具体实践。在这个场景中,Hessian4被用作一个轻量级的RPC(远程过程调用)协议,它允许应用程序在...
如果用tomcat部署服务器,需要hessian的认证,请在E:\tomcat\apache-tomcat-7.0.69\conf\tomcat-users.xml下面配置信息:如下 <role rolename="Hessian"/> 账号" password="密码" roles="Hessian"/>
标题中的“外部接口调用 使用spring4+hessian4实例(二)”指的是使用Spring框架的版本4和Hessian库的版本4来实现远程服务调用的一种实践案例。在这个实例中,我们将探讨如何利用这两个组件来构建分布式系统中的服务...