hessian

HESSIAN的技术实现简介

﹥>﹥吖頭↗ 提交于 2019-11-30 00:20:59
基本介绍 Hessian 是一个轻量级的 remoting onhttp 工具,使用简单的方法提供了 RMI 的功能。采用二进制 RPC 协议进行数据传输。 实现原理 Hessian 依托 HTTP 协议,在其上发送二进制数据信息,其使用的 ContentType 为 x-application/hessian。 客户端代理用户的请求,将调用的方法和参数值进行二进制编码,通过指定的URL打开HTTP连接,将数据传输到服务器端。服务器端URL对应的Servlet接收到数据后,进行解析,交给具体实现类完成调用,然后将返回值编码发回客户端。 客户端实现 通过HessianProxyFactory.create()方法,产生用户指定Interface的实例。具体实例的实现由JDK的Proxy代理机制来负责。在Proxy生成实例时,传入的InvocationHandler接口实例为HessianProxy。 当客户端调用时,所有的操作都由HessianProxy来负责:主要是将调用的方法、参数写入到URL指定的连接中。然后对返回的数据进行解析,返回给用户。 其主要方法实现: public Object invoke(Object proxy, Method method, Object []args) { .... conn = sendRequest(mangleName, args);

ClassFormatError: 56 while using hessian in j2me

倾然丶 夕夏残阳落幕 提交于 2019-11-29 15:20:09
I am trying to use the hessian j2me implementation @ http://hessian.caucho.com/ using java me sdk 3.0. http://hessian.caucho.com/doc/hessian-overview.xtp#Hessian%20Client%20for%20a%20cell-phone mentions the usage for j2me. The application builds without any errors/warning. But, the moment the line where MicroHessianOutput is instantiated is hit, a ClassFormatError ( java.lang.Error: ClassFormatError: 56 ) is thrown. Heres the trace : TRACE: <at java.lang.Error: ClassFormatError: 56>, startApp threw an Exception java.lang.Error: ClassFormatError: 56 - alert.AlertDemo.showOption(), bci=26 -

dubbo重要知识点梳理

家住魔仙堡 提交于 2019-11-29 05:02:37
dubbo架构 Provider: 暴露服务的提供方,可以通过jar或者容器的方式启动服务 Consumer:调用远程服务的服务消费方。 Registry: 服务注册中心和发现中心。 Monitor: 统计服务的调用次数、调用时间 Container:服务运行的容器。 Dubbo的网络传输协议 RPC通讯协议 Dubbo提供的序列化方式 dubbo:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 rmi:RMI协议采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式 Hessian:Hessian协议用于集成Hessian的服务,Hessian底层采用Http通讯,采用Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现 http:采用Spring的HttpInvoker实现 Webservice:基于CXF的frontend-simple和transports-http实现 Dubbo的注册中心 默认是zk,其他还有Redis、Multicast、Simple 注册中心,但不推荐。 Dubbo有哪几种配置方式? Spring 配置方式(XML文件) Java API 配置方式(注解方式) Dubbo的核心配置 dubbo:service 服务配置

自己动手整合 Hessian 到 Hasor 中发布服务

*爱你&永不变心* 提交于 2019-11-29 03:57:01
Hessian 是一种通信协议,使用 Hessian 可以实现跨平台的方法调用,有点类似 SOAP。您可以使用下面任意一种语言通过 Hessian 协议进行互相调用,Hessian 本身使用的是二进制传输格式。 好了废话不多说,这篇文章是源于和 OSC 上的朋友进行讨论最后得出的,现在拿出来和大家分享一下。 首先我们假想这样一段代码用来发布 Hessian 服务: @HessianService("/testBean") public class HessianBean { public String sayHello() { System.out.println("aaa"); return "aaa"; } } 然后使用下面这样的代码调用这个服务。 @HessianClient("http://127.0.0.1:8082/testBean") public interface IHessianBean { public String sayHello(); } public static void main(String[] args) throws MalformedURLException { IHessianBean bean = (IHessianBean) HessianPlugin.getPropxy(IHessianBean.class); System.out

Java 200+ 面试题补充③ Dubbo 模块

余生长醉 提交于 2019-11-28 16:12:59
昨天在我的 Java 面试粉丝群里,有一个只有一年开发经验的小伙伴只用了三天时间,就找到了一个年薪 20 万的工作,真是替他感到开心。 他的经历告诉我们:除了加强自我实战经验之外,还要努力积累自己的理论知识。 人生没有白走的路,也没有白吃的苦。你学的某一种知识,在将来某一天一定会给你惊喜! 高兴之余,让我们来看,今天的内容。 本文是 Java 最常见的 200+ 面试题 的第三个补充模块。 第一个补充模块: 面试题补充① ThreadLocal 模块 第二个补充模块: 面试题补充② Netty 模块 1.Dubbo 是什么? Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 2.Dubbo 的使用场景有哪些? 透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 软负载均衡及容错机制:可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。 服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。 3.Dubbo 核心功能有哪些? Remoting:网络通信框架,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。 Cluster:服务框架

Autowiring fails: Not an managed Type

断了今生、忘了曾经 提交于 2019-11-27 18:07:53
I have a big problem in my diploma project and would be very glad if you guys could help me! I made a Maven Multi Module Project and have 3 "Core-projects" NaviClean : (Parent) NaviCleanDomain : contains the domain model with all my entities and an interface MeinRemoteDienst which is needed by NaviCleanServer and NaviCleanCleint for the Hessianprotocol NaviCleanClient : conatins the GUI and a Hessian connection to NaviCleanServer NaviCleanServer : Here are my repositories, my connection to the DB and the Implementation of the interface einRemoteDienst NaviCleanServer & NaviCleanClient have

Dubbo - 技术选型

偶尔善良 提交于 2019-11-27 01:35:39
Zookeeper注册中心 Stable 支持基于网络的集群方式,有广泛周边开源产品,建议使用dubbo-2.3.3以上版本(推荐使用) 依赖于Zookeeper的稳定性 Simple监控中心 Stable 支持JFreeChart统计报表 没有集群支持,可能单点故障,但故障后不影响RPC运行 Dubbo协议 Stable 采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用) 在大文件传输时,单一连接会成为瓶颈 Netty Transporter Stable JBoss的NIO框架,性能较好(推荐使用) 一次请求派发两种事件,需屏蔽无用事件 序列化方案 Hessian Serialization Stable 性能较好,多语言支持(推荐使用) Hessian的各版本兼容性不好,可能和应用使用的Hessian冲突,Dubbo内嵌了hessian3.2.1的源码 接口代理生成方案 Javassist ProxyFactory Stable 通过字节码生成代替反射,性能比较好(推荐使用) 依赖于javassist.jar包,占用JVM的Perm内存,Perm可能要设大一些:java -XX:PermSize=128m 集群容错 Failover Cluster Stable 失败自动切换,当出现失败,重试其它服务器,通常用于读操作(推荐使用)

Autowiring fails: Not an managed Type

我怕爱的太早我们不能终老 提交于 2019-11-26 19:17:40
问题 I have a big problem in my diploma project and would be very glad if you guys could help me! I made a Maven Multi Module Project and have 3 "Core-projects" NaviClean : (Parent) NaviCleanDomain : contains the domain model with all my entities and an interface MeinRemoteDienst which is needed by NaviCleanServer and NaviCleanCleint for the Hessianprotocol NaviCleanClient : conatins the GUI and a Hessian connection to NaviCleanServer NaviCleanServer : Here are my repositories, my connection to