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

spring httpinvoker的应用

    博客分类:
  • 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-hik.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="testServiceHik" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
    	<property name="service" ref="testService"/>
    	<property name="serviceInterface" value="com.yydone.service.ITestService"/>
 	</bean>
 	
 	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="urlMap">
			<map>
				<entry key="/testServiceHik" value-ref="testServiceHik" />
			</map>
		</property>
	</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-hik.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/hik/*</url-pattern>
	</servlet-mapping>
	
</web-app>

 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>log4j</groupId>
    	<artifactId>log4j</artifactId>
    	<version>1.2.17</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>yydone-test</finalName>
  </build>
</project>

 

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>

 

 

下面是测试例子

spring-hik-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.httpinvoker.HttpInvokerProxyFactoryBean">
       <property name="serviceUrl" value="http://localhost:10080/yydone-test/hik/testServiceHik" />
       <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-hik-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

 

分享到:
评论

相关推荐

    Spring HttpInvoker的封装

    HttpInvoker是Spring框架的一部分,它提供了一种基于HTTP协议的远程调用机制,使得不同网络环境中的Java应用之间能够进行安全、高效的通信。本篇文章将深入探讨Spring HttpInvoker的原理以及如何对其进行封装,以便...

    使用httpInvoker提供远程服务

    因此,选择HttpInvoker还是Hessian,取决于具体的应用场景和性能需求。 总的来说,Spring的HttpInvoker提供了一种灵活的远程服务调用方式,它允许开发者利用HTTP协议的广泛支持,同时保持与本地方法调用相似的API...

    spring httpInvoker示例

    &lt;bean id="serviceExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"&gt; ``` 这里,`ServiceImpl`是你实现`ServiceInterface`的具体类,`HttpInvokerServiceExporter`将...

    springboot-httpinvoker-demo.zip

    同时,使用`@HttpInvokerService`注解暴露该服务,指定远程访问的URL。 3. 配置服务消费方:在服务消费方,使用`@HttpInvokerProxyFactoryBean`来创建服务代理,指定服务的URL和接口类型。这样,消费方就可以像调用...

    Java Spring2.5 Remote Invoke HTTP Invoker

    Java Spring 2.5 Remote Invoke HTTP Invoker 是一个基于HTTP协议的远程调用框架,它允许Spring应用通过HTTP协议来调用远程服务。这个技术在分布式系统中非常有用,因为它可以轻松地跨越网络边界,实现服务间的通信...

    Java Spring1.2 Remote Invoke HTTP Invoker

    Java Spring 1.2 远程调用HTTP Invoker是一个基于HTTP协议的远程服务调用框架,它是Spring框架的一部分,允许应用通过HTTP协议进行服务间的通信。这种通信方式相对于RMI(Remote Method Invocation)等其他远程调用...

    Hessian 、 HttpInvoker 、 XFire 、 Axis

    HttpInvoker主要面向Spring应用程序,易于集成,但相比Hessian,其数据传输效率较低,因为HTTP协议本身较重,且Java序列化也相对消耗资源。 XFire(后来被Apache CXF吸收)是一款基于XML的Web服务框架,它支持多种...

    用Http Invoker实现RCP客户端与后台的交互

    `Http Invoker`是Spring框架提供的一种基于HTTP协议的RPC实现,主要用于Java应用程序之间进行服务调用。本文将深入探讨如何使用Http Invoker实现RCP客户端与后台的交互,以及相关知识点。 1. **Http Invoker的基本...

    Eclipse工程Http Invoker Service & Client

    &lt;bean id="myServiceExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"&gt; ``` 服务端还需要一个Servlet容器,如Tomcat,部署Spring应用上下文,并配置一个...

    Jmail+ HttpInvoker+定时任务+Aop+Rmi+

    HttpInvoker是Spring框架的一个组件,主要用于实现基于HTTP协议的远程服务调用。它允许Java对象像本地调用一样调用远程的服务方法,降低了分布式系统间的通信复杂性。HttpInvoker通过序列化对象和方法调用参数,将其...

    HttpInvoker Sample

    在实际应用中,HttpInvoker的优势在于其简单性和易用性。由于基于HTTP协议,所以它可以轻松穿透防火墙,且与平台无关,支持多种编程语言。同时,由于它是基于Spring的,可以很好地与其他Spring功能集成,如事务管理...

    Thrift转SpringHttpInvoker

    Spring框架的集成也使得Http Invoker在Spring应用中无缝工作,提供了事务管理、AOP切面等功能。但是,由于使用的是HTTP和文本序列化,它的性能可能不如Thrift。 从Thrift转换到Spring Http Invoker,开发者需要考虑...

    spring远程调用简单实例

    总之,通过这个简单的Spring远程调用实例,我们可以深入了解Spring如何简化分布式系统开发,以及HTTP Invoker的工作机制。在实际应用中,Spring远程调用可以作为一个强大的工具,帮助我们构建可扩展、灵活的服务架构...

    http接口相关介绍

    Spring HTTP Invoker是一种灵活且高效的远程调用机制,适用于那些希望利用HTTP进行远程服务调用的应用场景。通过简单的配置步骤,开发者可以轻松地在客户端和服务端之间建立通信,并通过序列化机制安全地传输数据。...

    Spring应用开发实战Web Service WS

    Spring框架支持多种远程访问技术,包括RMI(Remote Method Invocation)、JAX-RPC(Java API for XML-based Remote Procedure Call)、Hessian、Burlap、XFire以及Spring自带的HTTPInvoker。这些技术都有各自的使用...

    pro spring 4

    - **远程调用**:Spring支持多种远程调用协议,如RMI、HTTP Invoker等,方便不同应用之间的交互。 - **脚本支持**:Spring支持脚本语言(如Groovy),可以通过脚本来扩展应用程序的功能。 - **测试**:Spring提供了...

    spring jar 包详解

    - **功能简介**:包含了支持 EJB、JMS、远程调用 Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 - **应用场景**:适用于需要实现远程调用功能的项目。 - **依赖关系**:依赖于 `spring-core....

    spring2.0和spring2.5 及以上版本的jar包区别 spring jar 包详解

    9. **spring-remoting.jar**:提供了对远程调用的支持,包括RMI、HTTP Invoker等技术。 10. **spring-support.jar**:提供了一些额外的支持,例如缓存支持、邮件发送等。 11. **spring-web.jar**:为基于Web的应用...

    Spring远程调用使用http方式

    &lt;bean id="httpInvokerServiceExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"&gt; ``` 3. **配置Servlet容器**: 配置Servlet容器(如Tomcat),将`...

Global site tag (gtag.js) - Google Analytics