当前位置: 首页 > 工具软件 > Burlap > 使用案例 >

java学习echohoo_Java学习之路-Burlap学习

仲鸿风
2023-12-01

今天我们来学一下Burlap。

Burlap是一种基于XML远程调用技术,但与其他基于XML的远程技术(例如SOAP或者XML-RPC)不同,Burlap的消息结构尽可能的简单,不需要额外的外部定义语言(例如WSDL或IDL)。

Burlap和Hessian很大程度上,它们是一样的,唯一的区别在于Hessian的消息是二进制的,而Burlap的消息是XML。(Burlap和Hessian代码实现上也很相似)

接下来我们看一下代码的实现:

一、首先我们先创建一个实体类,这里不需要实现Serializable接口

packageentity;public classFood {privateString name;private doubleprice;publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public doublegetPrice() {returnprice;

}public void setPrice(doubleprice) {this.price =price;

}

}

二、我们来定义一个接口

packageservice;importjava.util.List;importentity.Food;public interfaceFoodService {

ListgetFoodList();

}

三、定义一个类,实现步骤二中的接口,并继承BurlapServlet类(这里需要用到Burlap的jar文件,可以到这里下载http://www.findjar.com/jar/burlap/jars/burlap-2.1.7.jar.html)

packageservice.impl;importjava.util.ArrayList;importjava.util.List;importservice.FoodService;importcom.caucho.burlap.server.BurlapServlet;importentity.Food;public class FoodServiceImpl extends BurlapServlet implementsFoodService {public ListgetFoodList() {

List list=new ArrayList();

Food f1=newFood();

f1.setName("酸菜鱼");

f1.setPrice(25);

Food f2=newFood();

f2.setName("糖醋鱼");

f2.setPrice(23);

list.add(f1);

list.add(f2);returnlist;

}

}

四、现在我们可以在WEB-INF下的web.xml中配置一个servlet(Hessian也可以这样配置servlet)

food

service.impl.FoodServiceImpl

food

/food

五、我们来写一下测试代码,看一下结果

packagetest;importjava.util.List;importservice.FoodService;importcom.caucho.burlap.client.BurlapProxyFactory;importentity.Food;public classTest {public static voidmain(String[] args) {

String url="http://127.0.0.1:8080/test/food";

BurlapProxyFactory factory=newBurlapProxyFactory();try{

FoodService foodSevice=(FoodService) factory.create(FoodService.class, url);

List foodList =foodSevice.getFoodList();for(Food food : foodList) {

System.out.println(food.getName()+":"+food.getPrice()+"元。");

}

}catch(Exception e) {

e.printStackTrace();

}

}

}

控制台显示的结果为:

=========控制台=========

酸菜鱼:25.0元。

糖醋鱼:23.0元。

========================

接下来我们看一下Spring整合Burlap,这里和Spring整合Hessian基本差不多。

Spring整合Burlap

一、我们来定义一个接口

packageservice;importjava.util.List;importentity.Food;public interfaceFoodService {

ListgetFoodList();

}

二、定义一个类,实现步骤二中的接口

packageservice.impl;importjava.util.ArrayList;importjava.util.List;importservice.FoodService;importentity.Food;public class FoodServiceImpl implementsFoodService {public ListgetFoodList() {

List list=new ArrayList();

Food f1=newFood();

f1.setName("酸菜鱼");

f1.setPrice(25);

Food f2=newFood();

f2.setName("糖醋鱼");

f2.setPrice(23);

list.add(f1);

list.add(f2);returnlist;

}

}

三、我们可以在WEB-INF下的web.xml中配置SpringMVC需要信息

contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

springMvc

org.springframework.web.servlet.DispatcherServlet

1

springMvc

/

四、在applicationContext.xml中配置需要导出服务的bean信息

/>

五、在WEB-INF下新建springMvc-servlet.xml文件,并配置信息

FoodService

六、在客户端程序applicationContext.xml中配置获取服务的bean信息

/>

七、现在我们编写测代码

packagetest;importjava.util.List;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importentity.Food;importservice.FoodService;public classTest {public static voidmain(String[] args) {

ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");

FoodService foodService=(FoodService) ctx.getBean("getFoodService");

List foodList =foodService.getFoodList();for(Food food : foodList) {

System.out.println(food.getName()+":"+food.getPrice()+"元。");

}

}

}

接下来我们把项目部署到Tomcat上面,并且启动服务。运行测试代码

======控制台=======

酸菜鱼:25.0元。

糖醋鱼:23.0元。

===================

到这里我们已经学习了Spring整合Burlap。

 类似资料: