使用hessian简单实现项目之间的通信
首先建立两个动态工程分别命名为servicepro与clientpro,然后分别导入hessian用到的jar包(hessian-4.0.3.jar)
一、首先对服务端(servicepro工程)进行配置:
1.建立接口与接口实现类
a.创建HessianHelloWorld接口,接口中只有一个target方法
package com.remote; public interface HessianHelloWorld { String target(); }
b.创建HessianHelloWorldImpl继承HessianServlet并实现HessianHelloWorld接口
package com.remote.impl; import com.caucho.hessian.server.HessianServlet; import com.remote.HessianHelloWorld; public class HessianHelloWorldImpl extends HessianServlet implements HessianHelloWorld { private static final long serialVersionUID = -489831024851039867L; @Override public String target() { return "target:one piece"; } }
2.修改Web.xml文件,将上面实现的类作为servlet配置到该文件中
<servlet> <servlet-name>remote-service</servlet-name> <servlet-class>com.remote.impl.HessianHelloWorldImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>remote-service</servlet-name> <url-pattern>/service/remote</url-pattern> </servlet-mapping>
配置后该远程访问路径为http://localhost:8080/servicepro/service/remote
完成上述配置后工程的结构如附件:serviceproj-1.jpg
二、接着对客服端(clientpro工程)进行配置
1.在工程下直接创建类HessianClientTest类进行测试
package com.client.remote.test; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; import com.remote.HessianHelloWorld; public class HessianClientTest { public static void main(String[] args) { String url = "http://localhost:8080/servicepro/service/remote"; HessianProxyFactory factory = new HessianProxyFactory(); HessianHelloWorld hello = null; try { hello = (HessianHelloWorld) factory.create(HessianHelloWorld.class, url); } catch (MalformedURLException e) { e.printStackTrace(); } System.out.println(hello.target()); } }
此处需要注意的是HessianHelloWorld接口的使用,接口的引入方式有如下:
a.接口可以通过工程引入的方式从servicepro工程中引入该接口,选中clientpro右击-->build path -->configure build path 弹出对话框选择project项添加servicepro即可
b.通过将servicepro打包成jar并添加到clientpro工程路径下。
c.还有就是在客户端(clientpro工程)建立包含相同方法的接口,接口的名字可以任意但接口中的方法必须一致,一般便于管理接口命名都相同。
首选前两种方法,在开发阶段通过工程引入的方式获取这些接口,若接口功能已经确定也可以选择将需要用到的接口打包成jar并引入客户端,jar文件中只包含接口即可
完成上述配置后工程的结构如附件:clientproj-1.jpg