`
san_yun
  • 浏览: 2663503 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

hessian使用记录

 
阅读更多
hessian还是挺简单的,简单记录一下。注意hessian要使用官方下载的最新版本,不要用mvn仓库的,那是6年前的库了,呵呵。

pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.duitang</groupId>
  <artifactId>t3</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <properties>
  		  <org.springframework.version>3.1.2.RELEASE</org.springframework.version>
  </properties>
  <dependencies>
  		 <dependency>
		 	<groupId>javax.servlet</groupId>
		 	 <artifactId>servlet-api</artifactId>
		 	 <version>2.5</version>
		 </dependency>	
  	     <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
  		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>
	  	<dependency>
		  <groupId>com.duitang.external</groupId>
		  <artifactId>hessian</artifactId>
		  <version>4.0.7</version>
		</dependency>
  </dependencies>
</project>


接口定义和实现:
public interface BasicAPI {
	public String hello();
}


package test;

public class BasicService implements BasicAPI{

	public String hello() {
		return "Hello, world";
	}

}


webx.xml配置servlet:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>duitang.com</display-name>
    <servlet>
		<servlet-name>Hello</servlet-name>
		<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
		<init-param>
			<param-name>home-api</param-name>
			<param-value>test.BasicAPI</param-value>
		</init-param>
		<init-param>
			<param-name>home-class</param-name>
			<param-value>test.BasicService</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>Hello</servlet-name>
		<url-pattern>/Hello</url-pattern>
	</servlet-mapping> 
</web-app>


客户端调用

package test;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;


public class Test{

	public static void main(String[] args) throws MalformedURLException{
        String url="http://localhost:8080/Hello";
        HessianProxyFactory proxyFactory=new HessianProxyFactory();
        BasicAPI basicAPI = (BasicAPI) proxyFactory.create(BasicAPI.class, url);
        System.out.println(basicAPI.hello());

	}
	
}


python客户端更简单
if __name__ == "__main__":

    proxy = Hessian("http://localhost:8080/Hello")

    try:
        print proxy.hello()
    except Error, v:
        print "ERROR", v

Hello, world

hessian协议:
http://hessian.caucho.com/doc/hessian-serialization.html
分享到:
评论

相关推荐

    android端使用hessian跟web服务器通讯

    2. 处理结果:服务器执行完方法后,返回的数据会通过Hessian协议反序列化成对象,Android客户端可以直接使用。 五、错误处理与调试 1. 异常处理:在调用远程方法时,可能会出现网络异常或服务器异常,需要捕获并...

    hessianServer

    对Hessian服务的监控和日志记录是必要的,可以帮助开发者了解服务运行状态,快速定位和解决问题。可以使用各种监控工具,如JMX、Prometheus或ELK栈等。 10. **测试**: 在实际部署前,需要对Hessian服务进行充分...

    Hessian学习简单demo

    这个简单的Hessian demo可能还包括一些错误处理和日志记录,以帮助调试和理解流程。通过实践这个示例,你可以更深入地理解Hessian如何工作,以及如何在实际项目中应用它。 总的来说,Hessian提供了高效、轻量级的跨...

    hessian vc实现

    在VC(Visual C++)环境下实现Hessian客户端,可以让你的应用程序与使用Hessian服务端进行高效的数据交换。本文将详细介绍如何在VC中实现Hessian客户端,并提供相关知识点。 首先,理解Hessian协议的基础知识是必要...

    hessian-demo示例

    此外,Spring还提供了AOP(面向切面编程)功能,可以用于实现服务的安全控制和日志记录。 再来看看Jetty服务器。Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器。在这个示例中,Jetty作为Hessian服务的承载...

    spring整合hessian进行远程通讯

    在生产环境中,对Hessian服务的监控和日志记录至关重要。可以使用Spring的AOP功能添加拦截器来收集调用统计信息,或者集成像ELK(Elasticsearch, Logstash, Kibana)这样的日志管理平台进行日志分析。 7. **版本...

    hessian与spring整合的jar包

    4. 在客户端,通过Spring的`HessianClientInterceptor`或者直接使用`HessianProxyFactory`来创建Hessian代理,调用远程服务。 5. 配置服务器端(如Tomcat)以部署Spring应用上下文和Hessian服务。 6. 运行并测试服务...

    hessian php与java通讯demo源码

    需要注意的是,虽然Hessian简化了跨平台交互,但安全性、错误处理和日志记录等方面仍需要开发者仔细考虑和实现。 总之,这个"PHP与Java通信Demo源码"是一个很好的学习资源,帮助开发者理解如何在PHP和Java之间使用...

    spring aop hessian 基础demo 部署即可运行

    3. **定义AOP切面**:创建一个切面类,定义需要在Hessian调用前后执行的通知,如记录调用日志、性能统计等。 4. **配置AOP**:在Spring配置文件中,使用`&lt;aop:config&gt;`和`&lt;aop:aspect&gt;`标签来定义切面并关联通知。 ...

    dubbo源码依赖hessian_lite.jar

    当开发过程中需要依赖外部库,如hessian_lite.jar,可以将其添加到Maven的POM(Project Object Model)文件中,然后使用`mvn install`命令将这个jar包安装到本地的Maven仓库。这样,其他依赖此jar包的项目就可以通过...

    Hessian实战应用之获取客户端请求URL和重新转发客户端请求

    在实战应用中,获取客户端请求的URL是一项常见的需求,这有助于我们理解请求来源,进行日志记录,或者根据不同的URL采取不同的处理策略。在Hessian服务端,我们可以利用Servlet API来获取这些信息。例如,`...

    外部接口调用 使用spring4+hessian4实例

    本文将深入探讨如何使用Spring4框架结合Hessian4库来创建和消费远程服务,以此实现高效的二进制RPC(Remote Procedure Call)通信。 首先,Spring4是一个强大的Java应用程序框架,它提供了依赖注入、AOP(面向切面...

    flex中hessian实例

    5. **SafeDay.java**:这可能是Java后端的一个类,可能用于实现Hessian服务,提供特定业务逻辑,例如安全日志记录或者安全性检查等。需要分析代码以了解其具体功能。 6. **WebTest**:这可能是一个测试类或者测试...

    Spring整合Hessian访问远程服务

    4. 配置Hessian服务:在Spring配置文件中,使用`&lt;bean&gt;`标签声明`UserService`的实现,并通过`hessian-proxy-factory-bean`将其转换为Hessian服务。 ```xml &lt;hessian:service id="userServiceHessian" interface=...

    SpringMVC+ibatis+hessian基础框架

    压缩包里有两个 springMVC+Ibatis 的项目:HessianServer(服务器端),HessianClient(客户端),解压导入到MyEclipse 更改配置文件中的数据源,建表(和实体类对应的表),执行客户端中的BasicClient.java文件即可...

    Flex + Hessian 学习笔记(二)

    开发者可以使用Flex的调试器工具以及日志记录来定位问题。对于Hessian服务,还可以使用专门的Hessian测试工具来检查服务接口的正确性。 7. **示例代码**:压缩包中的`HessianFlexClient.swf`很可能是一个简单的Flex...

    Hessian源码分析和Hack.doc

    然而,在实际应用中,有时我们需要获取到远程调用端的IP地址、主机名等信息,以便进行日志记录、权限控制或特定业务处理。在Hessian的官方文档和网络资源中,很难找到直接获取这些信息的方法。本文将通过深入剖析...

    flex_spring_hessian框架(Java部分)

    6. **优化与调试**:为了提升性能,我们可以调整Hessian的缓冲区大小,或者使用压缩来减小数据传输量。同时,通过日志记录和调试工具,可以有效地定位和解决问题。 总的来说,Flex-Spring-Hessian框架结合了Flex的...

    Nacos JRaft Hessian 反序列化 RCE 分析.pdf

    - 使用 Hessian 将该实例序列化成字节流。 3. **发送数据包**: - 通过 `CliService` 或 `CliClientService` 发送序列化后的字节流至目标服务器。 4. **触发反序列化**: - 目标服务器接收到数据后,使用 JRaft...

Global site tag (gtag.js) - Google Analytics