原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-burlap.jsp

Concept Overview

In the earlier tutorials we saw an introduction to Spring remoting and its support for RMI and Hessian. In this tutorial we look at another remoting protocol supported by Spring - Burlap. Burlap is an XML based protocol for web services. It has been developed by Caucho. It is similar to Hessian, the only difference being Hessian is binary and Burlap is XML. Like Hessian, Burlap needs to be hosted over HTTP. Similar to Hessian, it has a BurlapServiceExporter and a BurlapProxyFactoryBean class. Note that since Burlap is not being actively developed, its support has been deprecated since Spring 4.0.

Sample Program Overview

The sample program below is a Greeting Service and demonstrates Spring support for Burlap. 

Required Libraries
  • aopalliance.jar
  • commons-logging.jar
  • log4j.jar
  • org.springframework.aop.jar
  • org.springframework.asm.jar
  • org.springframework.beans.jar
  • org.springframework.context.jar
  • org.springframework.context.support.jar
  • org.springframework.core.jar
  • org.springframework.expression.jar
  • org.springframework.web.jar
  • org.springframework.web.servlet.jar
  • hessian-3.1.5.jar
Interaction Flow

  • Client sends a message call
  • This message call is handled by a Burlap Proxy created by BurlapProxyFactoryBean
  • The Burlap Proxy converts the call into a remote call over HTTP
  • The Burlap Service Adapter created by BurlapServiceExporter intercepts the remote call over HTTP
  • It forwards the method call to Service
Burlap Server Code Package Structure

Burlap Server Source Code

Create the GreetingService interface as shown below. 
Create a method named getGreeting() that takes a name as a parameter and returns the greeting message (see line 5 below).

GreetingService.java
1
2
3
4
5
6
package com.studytrails.tutorials.springremotingburlapserver;
public interface GreetingService {
String getGreeting(String name);
}

Create a class GreetingServiceImpl as shown below. 
It implements the GreetingService interface (described earlier) 
Implement the getGreeting() method by sending a greeting message (see lines 6-8 below).

GreetingServiceImpl.java
1
2
3
4
5
6
7
8
9
10
package com.studytrails.tutorials.springremotingburlapserver;
public class GreetingServiceImpl implements GreetingService{
@Override
public String getGreeting(String name) {
return "Hello " + name + "!";
}
}

Create the burlap-servlet.xml file (see below).

Declare the 'greetingService' (see lines 14-15 below).

Export the 'greetingService' using Spring's BurlapServiceExporter class (see lines 17-21 below). 
Note the following properties of BurlapServiceExporter class:

  • service: the service class bean which shall handle the Burlap call (see line 18 below)
  • serviceInterface: The interface to be used by Spring to create proxies for Burlap (see line 19 below)
burlap-servlet.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="greetingService"
class="com.studytrails.tutorials.springremotingburlapserver.GreetingServiceImpl" />
<bean name="/greetingService.http"
class="org.springframework.remoting.caucho.BurlapServiceExporter">
<property name="service" ref="greetingService" />
<property name="serviceInterface" value="com.studytrails.tutorials.springremotingburlapserver.GreetingService"/>
</bean>
</beans>

Create the web.xml file (see below).

Create the servlet mapping for the url pattern '*.http' (see line 16 below) for Spring's DispatcherServlet (see line 10 below)

web.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Spring Remoting: Burlap Server</display-name>
<servlet>
<servlet-name>burlap</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>burlap</servlet-name>
<url-pattern>*.http</url-pattern>
</servlet-mapping>
</web-app>

Burlap Client Code Package Structure

Burlap Client Source Code

Create the GreetingService interface as shown below. 
Copy the GreetingService interface created for Burlap Server (described above) and paste it in Burlap Client source code while retaining the java package structure.

Note: For reference, the source code is shown below.

GreetingService.java
1
2
3
4
5
6
package com.studytrails.tutorials.springremotingburlapserver;
public interface GreetingService {
String getGreeting(String name);
}

Create a class TestSpringRemotingBurlap shown below to test Spring Burlap Remoting. 
Load spring configuration file (see line 11 below) 
Get a reference to GreetingService using the bean name 'greetingService' (see line 12 below) 
Call the GreetingService.getGreting() method by passing the name 'Alpha' (see line 13 below) 
Print the greeting message (see line 14 below).

TestSpringRemotingBurlap.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.studytrails.tutorials.springremotingburlapclient;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.studytrails.tutorials.springremotingburlapserver.GreetingService;
public class TestSpringRemotingBurlap {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config-client.xml");
GreetingService greetingService = (GreetingService)context.getBean("greetingService");
String greetingMessage = greetingService.getGreeting("Alpha");
System.out.println("The greeting message is : " + greetingMessage);
}
}

Create the spring-config-client.xml file (see below). 
Declare the 'greetingService' using Spring's BurlapProxyFactoryBean class (see lines 13-16 below). 
Note the following properties of BurlapProxyFactoryBean class:

  • serviceUrl : refers the URL of the remote service (see line 14 below). 
    Note URL part 'greetingService' corresponds to bean name property of BurlapServiceExporter bean defined in burlap-servlet.xml (defined earlier)
  • serviceInterface: The interface to be used by Spring to create proxies for Burlap (see line 15 below)
spring-config-client.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="greetingService" class="org.springframework.remoting.caucho.BurlapProxyFactoryBean">
<property name="serviceUrl" value="http://localhost:8080/springremotingburlapserver/greetingService.http"/>
<property name="serviceInterface" value="com.studytrails.tutorials.springremotingburlapserver.GreetingService"/>
</bean>
</beans>

Running Sample Program
Burlap Server Sample Program

This sample program has been packaged as a jar installer which will copy the source code (along with all necessary dependencies)on your machine and automatically run the program for you as shown in the steps below. To run the sampleprogram, you only need Java Runtime Environment (JRE) on your machine and nothing else.

Download And Automatically Run Burlap Server Sample Program
  • Save the springremotingburlapserver-installer.jar on your machine
  • Execute/Run the jar using Java Runtime Environment


(Alternatively you can go the folder containing the springremotingburlapserver-installer.jar and execute the jar using java -jar springremotingburlapserver-installer.jar command)

  • You will see a wizard page as shown below

  • Enter the location of the directory where you want the program to install and run (say, C:\Temp)

  • The installer will copy the program on your machine and automatically execute it. The expected output indicating that the program has run successfully on your machine is shown in the image below. 
    This shows that the Burlap Server program has run successfully on your machine

Burlap Client Sample Program

This sample program has been packaged as a jar installer which will copy the source code (along with all necessary dependencies)on your machine and automatically run the program for you as shown in the steps below. To run the sampleprogram, you only need Java Runtime Environment (JRE) on your machine and nothing else.

Download And Automatically Run Burlap Client Sample Program
  • Save the springremotingburlapclient-installer.jar on your machine
  • Execute/Run the jar using Java Runtime Environment


(Alternatively you can go the folder containing the springremotingburlapclient-installer.jar and execute the jar using java -jar springremotingburlapclient-installer.jar command)

  • You will see a wizard page as shown below

  • Enter the location of the directory where you want the program to install and run (say, C:\Temp)

  • The installer will copy the program on your machine and automatically execute it. The expected output indicating that the program has run successfully on your machine is shown in the image below. 
    This shows that the Burlap Client program has run successfully on your machine

Browsing the Program
Burlap Server Sample Code

This source code for this program is downloaded in the folder specified by you (say, C:\Temp) as an eclipse project called springremotingburlapserver . All the required libraries have also been downloaded and placed in the same location. You can open this project from Eclipe IDE and directly browse the source code. See below for details of the project structure.

Redeploying this sample program in a different web server

The WAR file for this example is available as springremotingburlapserver.war in the download folder specified by you earlier (e.g. C:\Temp). The path for the WAR file is <DOWNLOAD_FOLDER_PATH>/springremotingburlapserver/dist/springremotingburlapserver.war. 
This WAR file can be deployed in any webserver of your choice and example can be executed. 

Burlap Client Sample Code

This source code for this program is downloaded in the folder specified by you (say, C:\Temp) as an eclipse project called springremotingburlapclient . All the required libraries have also been downloaded and placed in the same location. You can open this project from Eclipe IDE and directly browse the source code. See below for details of the project structure.

转载于:https://www.cnblogs.com/davidwang456/p/5480827.html

Spring Remoting: Burlap--转相关推荐

  1. Spring Remoting: Remote Method Invocation (RMI)--转

    原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-rmi.jsp Concept Overview Spring pr ...

  2. Spring Remoting: HTTP Invoker--转

    原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-http-invoker.jsp Concept Overview ...

  3. http invoker_Http Invoker的Spring Remoting支持

    http invoker Spring HTTP Invoker是Java到Java远程处理的重要解决方案. 该技术使用标准的Java序列化机制通过HTTP公开服务,并且可以看作是替代方法,而不是He ...

  4. Http Invoker的Spring Remoting支持

    Spring HTTP Invoker是Java到Java远程处理的重要解决方案. 该技术使用标准的Java序列化机制通过HTTP公开服务,并且可以被视为替代解决方案,而不是Hessian和Burla ...

  5. Spring Remoting: Hessian--转

    原文地址:http://www.studytrails.com/frameworks/spring/spring-remoting-hessian.jsp Concept Overview The p ...

  6. spring remoting源码分析--Hessian分析

    1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...

  7. spring源码分析之spring-web remoting模块概况及基本概念

    spring-web总体分为三部分:caucho.httpinvoker.jaxws,其总体构造图如下: uml结构: 先看看网上搜索到的上述实现的原理吧:Spring RMI,Hessian/Bur ...

  8. (转载)spring jar包详细介绍

    spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-moc ...

  9. 多种Spring.jar详解

    Spring.jar是包含有完整发布的单个jar包,Spring.jar中包含除了 Spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到Spring-mo ...

最新文章

  1. vue结合php增删改查实例,用vue.js写一个简单的增删改查
  2. Tomcat7配置DataSource数据源
  3. 点击cell动态修改高度动画
  4. MySQL的用户的创建以及远程登录配置
  5. 有关缅甸语学习的一些网站
  6. Linux监控命令之==top
  7. 微信小程序+微信公众号开发总结
  8. (二叉树DFS)下落的树叶
  9. C语言,编写函数exchangeMaxMin(int arr[],int n),将该数组中最大最小值交换位置;
  10. clickhouse官方文档_clickhouse分析:zookeeper减压概述
  11. 主机与设备之间文件拷贝的几种方式
  12. 对InputStreamReader 和 OutputStreamWriter的理解
  13. VSCode修改字体的方法
  14. 学以致用——使用VBA从身份证号提取性别、出生年月日、年龄(Extract gender, DOB, age from ID)
  15. 【ORM】TypeORM 与 Prisma 的详细对比
  16. linux系统的7种banding方式
  17. Error creating bean with name 'redisTemplate' defined in URL
  18. Franka Emika Panda连接真实机械臂(二)
  19. 网易云课堂微专业--Java高级开发工程师
  20. 火狐(firefox)调试移动端页面

热门文章

  1. 清华计算机系媒体所,清华大学计算机系媒体所《时光机》新年联欢会小结
  2. html表格数据点击事件,如何在iview的table单元格里实现点击事件?
  3. php in方法,PHP函数in_array()使用详解
  4. MYSQL的地理信息数据库_国内为什么没有开源地理信息数据库?
  5. python什么时候用框架_python时间模块的使用
  6. 计算机缺少log怎么解决方法,win10 计算机丢失logmanager怎么办_win10丢失log.dll文件的解决方法-win7之家...
  7. oracle批量加载,Oracle教程:使用SQL*Loader高速批量数据加载工具
  8. 正版七日杀服务器存档,七日杀网吧怎么存档 七日杀网吧存档读档方法介绍-游侠网...
  9. java servlet init方法_JSP开发Servlet重写init()方法实例详解
  10. ubuntu查看OpenCV的版本和安装的库