Hessian Servlet实例
2024-09-08 09:25:48
Servlet实例
业务场景
在下面的例子中我会发布一个简单的输出字符串的方法,然后在客户端调用并输出结果。
服务器端
环境搭建
在服务端,我们需要引入hessian和servlet的包、编写服务、配置servlet,项目结构如下:
代码示例
服务端继承HessianServlet类即可。
打招呼接口:
package example; /** * @author X */ public interface HelloService { /** * 获取问候。 * @return 问候。 */ String getWords(); }
HelloService.java
打招呼实现:
package example; import com.caucho.hessian.server.HessianServlet; /** * @author X */ public class HelloServiceImpl extends HessianServlet implements HelloService { public String getWords() { return "你好,我叫王小二!"; } }
HelloServiceImpl.java
web配置:
<!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>Archetype Created Web Application</display-name> <servlet> <servlet-name>hello</servlet-name> <servlet-class>example.HelloServiceImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/rpc</url-pattern> </servlet-mapping> </web-app>
web.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"> <parent> <artifactId>container</artifactId> <groupId>hessian.host</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>host-servlet</artifactId> <packaging>war</packaging> <name>host-servlet Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.7</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> </dependencies> <build> <finalName>host-servlet</finalName> </build> </project>
pom.xml
把项目发布到tomcat后,访问显示如下:
客户端
环境搭建
- 客户端需要引入hessian的包。
- 客户端需要有一个与服务端接口一致的类(注:一般我们做开发的时候不会重新定义,而是会有一个接口项目,分别为客户端和服务端所引用)。
代码示例
调用
import com.caucho.hessian.client.HessianProxyFactory; import example.Father; import example.ShuttleService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.net.MalformedURLException; /** * @author X */ public class Run { public static void main(String[] args) throws MalformedURLException, ClassNotFoundException { String url="http://localhost:45/rpc"; HessianProxyFactory hpf=new HessianProxyFactory(); HelloService hs=(HelloService)hpf.create(HelloService.class,url); System.out.println(hs.getWords()); } }
Run.java
运行结果如下图所示:
最新文章
- org.dom4j.documentexception异常
- Java最全文件操作实例汇总
- SDL2.0的几何图行绘画
- 提权后获取linux root密码
- tableviewcell 系统工具删除:左滑删除,选中多个删除
- mysql怎样建表及mysql优化
- asp.net夜话之十一:web.config详解
- bitree
- windows azure 实例
- python基础(4):条件语句与循环语句
- Python内置函数(32)——all
- IOS开发初体验
- 6.8 出口条件循环:do while
- GitFlow原理浅析
- ref 参数与out参数
- 大数据之 Hadoop学习笔记
- 利用sqlserver sa更改系统密码
- Java中带标签的break,continue
- 淘宝NPM镜像源
- 网卡优化RPS/RFS