`
snrqtdhuqf
  • 浏览: 79611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring hessian的使用

    博客分类:
  • Java
 
阅读更多

ITestService接口

package com.yydone.service;

public interface ITestService {

	public String say();
	
	public String doSomething();
}

 TestService实现

package com.yydone.service.impl;

import org.springframework.stereotype.Service;

import com.yydone.service.ITestService;

@Service
public class TestService implements ITestService {

	public String say() {

		return "hello yydone";
	}

	public String doSomething() {

		return "working";
	}

}

 spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
	
	<context:component-scan base-package="com.yydone.service" />
	
	<bean name="/testServiceHN" class="org.springframework.remoting.caucho.HessianServiceExporter">
    	<property name="service" ref="testService"/>
    	<property name="serviceInterface" value="com.yydone.service.ITestService"/>
 	</bean>
 	 
</beans>

 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>yydone-test</display-name>
	
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>
	
	 <servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/hessian/*</url-pattern>
	</servlet-mapping>
	
</web-app>

 log4j.xml

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
	debug="false">
	<!-- 业务日志,生产环境使用。 -->
	<appender name="log_file" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="Threshold" value="DEBUG" />
		<param name="File" value="/log/hessian-test.log" />
		<param name="Append" value="true" />
		<param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d [%t] %-5p %-40.40c -%m%n" />
		</layout>
	</appender>

	<!-- 控制台日志,开发阶段使用 -->
	<appender name="log_console" class="org.apache.log4j.ConsoleAppender">
		<param name="Threshold" value="INFO" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d [%t] %-5p %-40.40c -%m%n" />
		</layout>
	</appender>

	<!-- 默认业务日志 -->
	<root>
		<appender-ref ref="log_file" />
		<appender-ref ref="log_console" />
	</root>
</log4j:configuration>

 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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yydone</groupId>
  <artifactId>hessian-test</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>3.2.2.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-test</artifactId>
    	<version>3.2.2.RELEASE</version>
    </dependency>
    <dependency>
		<groupId>com.caucho</groupId>
		<artifactId>hessian</artifactId>
		<version>4.0.33</version>
	</dependency>
    <dependency>
    	<groupId>log4j</groupId>
    	<artifactId>log4j</artifactId>
    	<version>1.2.17</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>hessian-test</finalName>
  </build>
</project>

 以上是项目代码,下面是测试代码

spring-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">
 	
 	<bean id="myServiceClient" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
       <property name="serviceUrl" value="http://localhost:10080/hessian-test/hessian/testServiceHN" />
       <property name="serviceInterface" value="com.yydone.service.ITestService" />
    </bean>
 	
 	 
</beans>

 TestServiceTest.java

package test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.yydone.service.ITestService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-test.xml")
public class TestServiceTest extends AbstractJUnit4SpringContextTests {

	@Autowired
	private ITestService testService;
	
	@Test
	public void test_say() {
		System.out.println(testService.say());
		System.out.println(testService.doSomething());
	}
}

 输出

hello yydone
working

 

 

分享到:
评论

相关推荐

    Hessian的Spring配置

    2. **配置Hessian服务**: 在Spring的配置文件中,使用`&lt;bean&gt;`标签定义HessianExporter,暴露服务接口。 ```xml &lt;bean id="helloHessianExporter" class="org.springframework.remoting.caucho.HessianExporter"&gt;...

    Spring集成Hessian案例

    在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Hessian则是一种高效的RPC(远程过程调用)协议,它允许服务提供者和消费者之间进行二进制远程方法调用。本案例主要关注如何将Spring与Hessian进行...

    Hessian与Spring整合需要jar包

    1. **配置Spring**:在Spring的配置文件中定义Hessian服务的bean,通过`&lt;bean&gt;`标签声明服务接口和其实现类,使用`hessian-proxy-factory-bean`来创建Hessian服务的代理。 2. **暴露Hessian服务**:通过Spring的`...

    hessian与spring整合的jar包

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

    Spring中集成Hessian的问题

    在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...

    spring 集成 hessian例子

    Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...

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

    Spring AOP和Hessian是两个在Java开发中广泛使用的技术,尤其在分布式系统和服务治理中。下面将详细解释这两个概念以及它们如何结合使用。 **Spring AOP(面向切面编程)** Spring AOP是Spring框架的一个重要组成...

    Spring配置hessian远程服务

    使用eclipse maven工程搭建hessian远程服务demo 分服务端的整合和客户端 建议阅读相关博客http://blog.csdn.net/heisemuyangquan/article/details/79460528

    Hessian 使用小结

    4. **客户端调用**:客户端可以选择与Spring集成,通过Spring的`ApplicationContext`获取代理对象,或者直接使用Hessian工具生成代理。 **安全机制** Hessian提供了基于X.509证书的加密和签名机制,这包括`X509...

    Spring + Hessian + Spring MVC(包括Server和Client).zip

    1.名称:Spring + Hessian + Spring MVC(包括Server和Client).zip 2.来源:自己实现 3.备注:项目有两个系统,包括Server端和Client端,项目已经跑通,可以实现。 4.注意:client中pom.xml里最后的一个jar包,需要...

    在 Spring Web Flow 项目中应用 Hessian 服务

    1. **配置Hessian服务**:在服务器端,我们需要创建一个实现了所需接口的业务服务类,并在Spring配置文件中声明它为Hessian服务,使用`&lt;bean&gt;`标签配合`hessian:service`标签进行配置。 2. **暴露Hessian服务**:...

    Hessian和Spring集成示例

    在IT行业中,Hessian和Spring的集成是服务端开发中常用的一种技术,它允许我们将Java对象作为远程服务进行调用,极大地提高了开发效率和系统的可扩展性。下面将详细讲解Hessian与Spring集成的关键知识点。 首先,...

    spring整合hessian进行远程通讯

    标题中的“spring整合hessian进行远程通讯”是指在Spring框架中使用Hessian库来实现远程过程调用(RPC)。这是一个常见的技术组合,用于构建分布式系统,使得应用组件之间可以跨网络进行高效通信。 Hessian是一种二...

    基于spring+hessian框架的webservice实例

    本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...

    Hessian与spring整合

    6. **性能优化**:由于Hessian使用二进制编码,相比基于XML的SOAP协议,其传输效率更高。但为了进一步优化性能,我们还可以考虑使用HTTP压缩、连接池等技术。 7. **安全考虑**:在实际应用中,我们需要对Hessian...

    spring mvc hessian maven简单实例

    Spring MVC 是一个强大的Java Web应用程序开发框架,它简化了处理HTTP请求和响应的过程...通过Spring MVC处理HTTP请求,使用Hessian进行高效的远程方法调用,以及通过Maven管理项目依赖,使得开发过程更加便捷和高效。

    使用hessian简单使用【续】- 与spring结合使用

    本篇文章将探讨如何在Spring框架中集成并使用Hessian,以便更好地理解和应用这一技术。 一、Hessian简介 Hessian是由Caucho公司开发的一种基于HTTP的二进制RPC(Remote Procedure Call)协议,它以简洁的二进制格式...

    hessian 基于spring的注解支持的maven工程(2016/07/05版)

    引入该工程,在接口上添加@hessianService注解,在client定义url,在client端的xml里面配置hessianClientBuilder,在server里面配置hessianServerBuilder,并实例化接口。在client端里面使用接口并注入即可。

Global site tag (gtag.js) - Google Analytics