hessian spring 调用
来源:互联网 发布:电力网络摄像头 编辑:程序博客网 时间:2024/06/06 20:00
hessian spring 调用实例
一、 编写服务端代码
1) 编写实体类
public class Efile implements Serializable {
private static final long serialVersionUID = 8824334653712012069L;
private Fwqpz pzm ;
private Map<String , Fwqpz> fwqpzMap;
private String fileName;
private String title;
private String md5;
public class Fwqpz implements Serializable{
private static final long serialVersionUID = 2091708553885622574L;
private String pzm;
private String dataPath;
private Integer port;
private Map<String , Object> mapping;
2)编写一个接口
public interface EfileService {
public void addEfile(Efile efile);
public Efile getEfile(String id, Fwqpz pzm);
public Fwqpz getEfileMap();
}
3)编写实现类
public class EfileServiceImpl implements EfileService {
public void addEfile(Efile efile) {
System.out.println(efile.getFileName());
System.out.println("保存成功");
}
public Efile getEfile(String id, Fwqpz pzm) {
Map<String , Fwqpz> pzmMap = new HashMap<String, Fwqpz>();
Fwqpz pzmObj = new Fwqpz();
pzmObj.setDataPath("d:/data");
pzmObj.setPort(21);
Fwqpz pzmObj1 = new Fwqpz();
pzmObj1.setDataPath("d:/degital");
pzmObj1.setPort(2561);
pzmMap.put("data", pzmObj);
pzmMap.put("degital" , pzmObj1);
Efile efile = new Efile();
efile.setFileName(id);
efile.setFwqpzMap(pzmMap);
efile.setMd5("*/5-554-*4-5*4-4-4");
return efile;
}
public Fwqpz getEfileMap() {
Fwqpz pzmObj = new Fwqpz();
pzmObj.setDataPath("d:/data");
pzmObj.setPort(21);
return pzmObj;
}
}
4)引入jar包
a) spring相关jar包
b) hession、servlet等核心jar包
5)配置web.xml、spring-context.xml、hessian-servlet.xml
a)配置web.xml
<welcome-file-list>
<welcome-file>SpringmvcHessian/hs/efService.hs</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</context-param>
<servlet>
<servlet-name>hessian</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/hs/*</url-pattern>
</servlet-mapping>
b)配置spring-context.xml
<bean id="eFileService" class="cn.ly.services.impl.EfileServiceImpl" />
<!-- 使用HessianServiceExporter 将普通bean导出成Hessian服务 -->
<bean id="service_hs_rpc" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="eFileService" />
<!-- Hessian服务的接口 -->
<property name="serviceInterface" value="cn.ly.services.i.EfileService" />
</bean>
c)配置hessian-servlet.xml
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/efService.hs" value-ref="service_hs_rpc" />
</map>
</property>
</bean>
OK,服务端编写完成!
2、编写客户端代码
a) Servlet客户端
public class CallHessianServlet {
//调用hessian自己的servlet的方法
public static void main(String[] args) {
String url="http://localhost:8080/SpringmvcHessian/hs/efService.hs";
HessianProxyFactory factory=new HessianProxyFactory();
factory.setOverloadEnabled(true);
try {
Fwqpz fwpz = new Fwqpz();
fwpz.setPort(591);
fwpz.setDataPath("c:/temp/sdfs/sdw/斯蒂芬莫");
EfileService remote =(EfileService) factory.create(EfileService.class, url);
Efile efile = remote.getEfile("this is test call" , fwpz);
System.out.println(efile.getFileName());
Map<String, Fwqpz> map = efile.getFwqpzMap();
Set<String> set = map.keySet();
for (String key : set) {
System.out.println(map.get(key).getDataPath());
}
System.out.println(efile.getMd5());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
b)Spring客户端
public class SpringCall {
public static void main(String[] args) {
try {
ApplicationContext context = new ClassPathXmlApplicationContext("/remoting-client.xml");
Fwqpz fwpz = new Fwqpz();
fwpz.setPort(591);
fwpz.setDataPath("c:/temp/sdfs/sdw/斯蒂芬莫");
EfileService remote = (EfileService) context.getBean("efileServiceClent");
Efile efile = remote.getEfile("this is test call", fwpz);
System.out.println(efile.getFileName());
Map<String, Fwqpz> map = efile.getFwqpzMap();
Set<String> set = map.keySet();
for (String key : set) {
System.out.println(map.get(key).getDataPath());
}
System.out.println(efile.getMd5());
} catch (Exception e) {
e.printStackTrace();
}
}
}
- hessian spring 调用
- spring hessian远程调用
- PHPHessian调用Java Spring Hessian
- hessian远程调用及spring中使用hessian
- java远程调用之spring和hessian
- Spring使用Hessian实现远程调用
- Spring的Hessian,Burlap,HttpInvoker远程调用
- Spring框架学习【Spring使用Hessian实现远程调用】
- spring技术内幕18-Spring使用Hessian实现远程调用
- Spring Hessian
- spring hessian
- spring+hessian
- 使用PHPHessian调用Java Spring Hessian暴露服务
- java框架简介4----Spring+Hessian 远程过程调用
- Spring结合Hessian协议远程调用方法名不能重载
- Spring与远程调用RMI、Hessian、Burlap、HttpInvoker、Jax-WS
- 远程服务调用之RMI、Hessian、Burlap、Spring的HTTPinvoker
- Spring 与Hessian 整合的简单远程调用实例
- JAVA MQ编码部分
- IES Light Profiles
- Linux软连接和硬链接
- Spring Security + Hibernate XML Example
- js 毫秒 转date
- hessian spring 调用
- Caliburn Micro Part 5: The Window Manager
- [LeedCode OJ]#231 Power of Two
- Android 打包签名(一)
- Iphone程序运行流程
- hdu 4585 set + pair
- jquery核心基础
- linux下升级pip安装不了第三方库的解决方法
- hdu 1525 Euclid's Game