- 浏览: 231880 次
- 性别:
- 来自: 重庆
-
文章分类
最新评论
-
otom31:
一点不单纯 写道谢谢!之前一直用您的工具很成代码,很实用。谢谢 ...
MagicalTools-4.1 -
otom31:
空城旧梦已秋凉 写道求开源啊 上传到github嘛 大神 研 ...
MagicalTools-4.1 -
空城旧梦已秋凉:
求开源啊 上传到github嘛 大神 研究一下 nutz框架 ...
MagicalTools-4.1 -
一点不单纯:
谢谢!之前一直用您的工具很成代码,很实用。
MagicalTools-4.1 -
wisedak:
请问最新版在哪里下载啊?放出的链接还是旧版啊!
代码自动生成工具 hibernate配置文件工具 MagicalTools
似乎最近Hessian 很火?
昨天我用了,马上就喜欢上了他.
1- 整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本.
2- 配置很简单,基本上不需要花什么经历就配置出来了
3- 功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象
4- 拥有多种语言支持,python c++ .net 甚至 flex 都可以做为client端
http://hessian.caucho.com/#Java 这里可以下载到for java的版本
任意JAVA的IDE新建一个JAVA WEB工程
将下载的.jar包引入工程中,创建一个接口,这个接口可以供客户端和服务器端使用如下:
java 代码
- public interface IBasic {
- /**
- * 测试字符串
- * @return
- */
- public String hello();
- /**
- * 取一辆汽车 测试对象传递
- * @return
- */
- public Car getCar();
- }
当然接口中用到的Car 这个类是自己定义的包含任何属性的标准JAVABEAN;
接下来我们就开始做service端的程序了:
java 代码
- /**
- * Created by IntelliJ IDEA.
- * User: tangkf
- */
- public class BasicService implements IBasic {
- private String hello= "Hello, world";
- public String hello()
- {
- return hello;
- }
- public Car getCar() {
- Car car = new Car();
- car.setColor("RED红色");
- car.setLength("2400");
- car.setName("HAHACHE");
- return car;
- }
- }
服务器端的程序写好后,要让client能够通过http协议访问到我们的service还需要配置servlet,当然这个过程是很简单的
xml 代码
- <servlet>
- <servlet-name>helloservlet-name>
- <servlet-class>com.caucho.hessian.server.HessianServletservlet-class>
- <init-param>
- <param-name>home-classparam-name>
- <param-value>study.hessian.BasicServiceparam-value>
- init-param>
- <init-param>
- <param-name>home-apiparam-name>
- <param-value>study.hessian.IBasicparam-value>
- init-param>
- servlet>
- <servlet-mapping>
- <servlet-name>helloservlet-name>
- <url-pattern>/hellourl-pattern>
- servlet-mapping>
只需要将上面的代码加入到你的WEB.XML文件中,当然包路径是你自己的路径而已.
这时服务器段的工作就已经全部完成了.
接下来我们在做client端的工作,client需要用到IBasic 这个接口,还需要用到 Car 这个类
可以做一个简单的测试:
java 代码
- public class BasicClient {
- public static void main(String []args)
- throws Exception
- {
- String url = "http://127.0.0.1:8099/common/hello";
- HessianProxyFactory factory = new HessianProxyFactory();
- Basic basic = (Basic) factory.create(Basic.class, url);
- Car car = basic.getCar();
- System.out.println("Hello: " + basic.hello());
- System.out.println("Hello: " + car.toString());
- }
- }
大功告成,启动我们的WEB服务器,然后在启动这个client的程序,是不是发现屏幕上输出了你想看到的结果!要是抛异常了怎么办?
不要急,检查下包路径,.xml文件的配置,没有什么神奇的地方.
我们离开了WSDL,离开了WSDD,也不需要AXIS,不需要什么W3C的大篇标准.
Hessian 简单就是美,实用就是强,好用就是王道!!!哈哈哈哈~~~
评论
18 楼
otom31
2014-07-04
美人如此多娇 写道
问下。如果A服务器做hessian的客户端,需要调用B服务器端的服务接口,客户端是怎么实现的,你上面的Demo中相当于客户端和服务器端在一个工程中,是可以拿到服务器端的API的(Basic),正常使用时无法拿到服务API的,那客户端怎么实现?
这个API可以看着是双方的协议,如果你不告诉客户协议,客户端肯定无法实现了,或者说实现起来很困难了。
17 楼
美人如此多娇
2014-06-30
问下。如果A服务器做hessian的客户端,需要调用B服务器端的服务接口,客户端是怎么实现的,你上面的Demo中相当于客户端和服务器端在一个工程中,是可以拿到服务器端的API的(Basic),正常使用时无法拿到服务API的,那客户端怎么实现?
16 楼
viaco2love
2012-12-03
他的web.xml有错
http://www.blogjava.net/ducklyl/archive/2008/10/09/154757.html
http://www.blogjava.net/ducklyl/archive/2008/10/09/154757.html
15 楼
netkiller.github.com
2012-08-23
MQ 来的更直接
14 楼
netkiller.github.com
2012-08-23
Hessian 仍然需要web server, web 服务器本身就有性能瓶颈,还有很多限制.
我更喜欢Socket直接 tcp/udp 调用
我更喜欢Socket直接 tcp/udp 调用
13 楼
wangjian95
2012-07-13
这个可以哈
12 楼
otom31
2011-11-15
aye_love 写道
服务器端是不是用Hessian 实现的不知道,只有服务端的wsdl地址,在客户端能不能使用Hessian 调用服务?
WSDL 那就是WEBSERVICE了,不能用hessian
必须服务端也是HESSIAN才行
11 楼
aye_love
2011-11-14
服务器端是不是用Hessian 实现的不知道,只有服务端的wsdl地址,在客户端能不能使用Hessian 调用服务?
10 楼
otom31
2011-08-12
leidengyan 写道
楼主,hessian传递的对象应该要序列化的,目前的程序跑起来确实有问题,将Car类进行序列化就没问题了。
是的,没想到这篇帖子过了这么多年了,还有人回复!
9 楼
leidengyan
2011-08-10
楼主,hessian传递的对象应该要序列化的,目前的程序跑起来确实有问题,将Car类进行序列化就没问题了。
public class Car implements Serializable { /** * */ private static final long serialVersionUID = -2954223940367043694L; private String a1; private String a2; public String getA1() { return a1; } public void setA1(String a1) { this.a1 = a1; } public String getA2() { return a2; } public void setA2(String a2) { this.a2 = a2; } }
8 楼
gqf2008
2007-11-22
看不出这和RMI有啥区别?
7 楼
otom31
2007-11-22
对是IBasic,这个是公用接口~~~~~~~~~~
6 楼
zhangsheng79
2007-11-22
你客户端的Basic类哪来的?是IBasic?
5 楼
Chamjoneu
2007-11-22
还是不成~ T_T
string on 8080 or 8099~~
string on 8080 or 8099~~
4 楼
otom31
2007-11-21
at $Proxy0.getCar(Unknown Source)
这句.....有Car对象吗????
你把getCar的部分先测试 String 类型
这句.....有Car对象吗????
你把getCar的部分先测试 String 类型
3 楼
Chamjoneu
2007-11-21
成功了~~
是不是端口问题
按理说 HessianServlet
听得的是8080 但该改成8080 又说FileNotFoundException
in BasicClient.java
String url = "http://localhost:8080/HessionTest/webservice";
是不是端口问题
按理说 HessianServlet
<servlet> <servlet-name>HessianServlet</servlet-name> <servlet-class> com.caucho.hessian.server.HessianServlet </servlet-class> <init-param> <param-name>home-class</param-name> <param-value>org.hessian.study.BasicService</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>org.hessian.study.IBasic</param-value> </init-param> </servlet>
听得的是8080 但该改成8080 又说FileNotFoundException
in BasicClient.java
String url = "http://localhost:8080/HessionTest/webservice";
Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: java.io.FileNotFoundException: http://localhost:8080/HessionTest/webservice at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:182) at $Proxy0.getCar(Unknown Source) at org.hessian.study.BasicClient.main(BasicClient.java:19)
2 楼
otom31
2007-11-21
你的WEB启动成功了没?有问题吗?
1 楼
Chamjoneu
2007-11-21
晕 请教一下 为什么会有
Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: java.net.ConnectException: Connection refused: connect
这样的exception
in BasicClient.java
String url = "http://localhost:8099/HessianLearning/webservice";
in web.xml
试过了jboss & tomcat 都是一样的 -_-!!
Plese Help, Thanks very much
Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: java.net.ConnectException: Connection refused: connect
这样的exception
in BasicClient.java
String url = "http://localhost:8099/HessianLearning/webservice";
in web.xml
<servlet> <servlet-name>HessianServlet</servlet-name> <servlet-class> com.caucho.hessian.server.HessianServlet </servlet-class> <init-param> <param-name>home-class</param-name> <param-value>org.hessian.study.BasicService</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>org.hessian.study.IBasic</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>HessianServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
试过了jboss & tomcat 都是一样的 -_-!!
Plese Help, Thanks very much
发表评论
-
MagicTools-4.5,代码自动生成工具(miniui框架),原Hibernate代码自动生成工具
2018-01-23 20:36 1058MagicTools-4.5,代码自动生成工具(miniu ... -
MagicalTools-4.1
2016-03-21 12:40 1163最新版代码工具,修复了部分BUG,很多朋友在问下载地址~~ -
代码自动生成工具 hibernate配置文件工具 MagicalTools
2015-07-23 04:35 2264以前版本的名字叫:HiberanteTools 和 hb ... -
hibernate 配置文件工具
2014-09-03 01:47 1078hibernate 配置文件工具,3.1.1,版本,修正了 ... -
(3月28最新修改)hibernate 配置文件 pojo 工具 hibernate tools-3.0
2012-03-27 18:18 32602012-3-28 凌晨 1.最新版 ... -
关于MVC和ajax的思考
2012-02-14 18:44 1359要想对这个发表一些看 ... -
hibernate 配置文件 pojo 工具 hibernate tools-2.0
2011-11-16 00:28 4019[color=red][size=large]增加了在 JDK ... -
hibernate 配置文件工具 hbmtools 2.0 即将推出
2011-11-15 04:13 1963新版本 2.0 界面: 老版本界面: -
查看 tomcat 控制台日志方法
2011-10-28 19:57 1983方法1: tail -f /tomcat/logs/catal ... -
spring 与 hessian 集成的版本对照
2011-10-16 01:47 1600spring 2.x 与 hessian 3.1.6 以下 ... -
Hessian 学习 例子 实例
2011-09-19 23:45 1799HessianClient 为 客户端调用说明 Hessia ... -
hibernate 配置文件生成工具 hbmtools-1.3.3
2011-09-08 19:36 1335改进如下: 1. 增加了多数据类型的支持; 2. 增加了toJ ... -
PHP与APACHE 的手工配置
2011-03-02 15:01 1522其实现在PHP环境搭建的工具很多,无需手工配置,但是我还是介绍 ... -
移动MM7 梦网彩信彩信群发平台开发心得
2011-01-13 13:26 3097前提: 1. 梦网彩信网关完成相关数据; 2. BOSS计 ... -
实现一个简单的hash型对象缓存管理池
2009-12-18 13:35 1383实现的功能: 1. 将对象按唯一的标识ID存入缓存池(池内部 ... -
Eclipse 快捷键
2009-09-01 02:08 1028Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctr ... -
从数据库生成JAVABEAN 和 Hibernate 配置文件的工具1.3.1
2009-03-24 21:35 4149HDBTOOLS 1.3版本,支持表的备注,和字段备注. ... -
从数据库 到 hibernate配置文件,JAVABEAN 和HTML表单的工具1.2
2009-03-15 04:07 1749功能: 实现从数据库到HBM配置文件和JAVABEAN的自动生 ... -
AXIS1.4 客户端 wsdl2java 使用方法
2008-09-04 02:30 12063突然之间要用JAVA掉webservice 的接口,用Ecli ... -
从数据库 到 hibernate配置文件,JAVABEAN 和HTML表单的工具
2008-08-18 00:35 2012测试版1.0 支持MySQL 和 MsSQL2000 两种数据 ...
相关推荐
这篇学习笔记将深入探讨这两个技术,并通过实例代码解析它们的工作原理。 Flex是Adobe开发的一个开源框架,主要用于创建交互式、高性能的RIA,通常基于ActionScript编程语言和Flash Player或Adobe AIR运行时。Flex ...
【标题】:“Hessian笔记”主要探讨的是Hessian这一技术在IT领域的应用,尤其是与源码和工具相关的知识。Hessian是一种二进制的Remoting协议,它旨在提供高效的远程方法调用(Remote Method Invocation,RMI)能力,...
本篇文章将深入探讨“java后端学习笔记”中的关键知识点,包括消息队列(Message Queuing)服务如ActiveMQ和RabbitMQ、工作流引擎Activity、容器化技术Docker、分布式服务框架Dubbo、网络库Netty、RPC(Remote ...
在本篇深度学习笔记中,我们主要总结了Momentum、RMSProp和Adam三种优化方法,同时简要介绍了病态曲率和牛顿法等概念。 #### 病态曲率 在优化过程中,我们会遇到病态曲率的问题,它指的是损失曲面上某个区域沿某个...
《MyDubbo:Dubbo源码学习笔记》 在Java开发领域,Dubbo是一个非常知名的分布式服务框架,它由阿里巴巴开源并广泛应用于大型企业系统。本篇笔记将深入探讨Dubbo的核心概念、工作原理以及源码解析,帮助开发者更好地...