在项目中,如果需要发布web服务时,不妨也考虑一下hessian,这么一个轻量简洁的实现方式。以下是一个入门级实例。
1.服务端代码:
HessianImpl.java
[code]
package hessian;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.caucho.hessian.server.HessianServlet;
public class HessianImpl extends HessianServlet implements IHessian{
public String say(String msg) {
return "Hello " + msg;
}
public Map getMap() {
Map map = new HashMap();
map.put("work", "任务");
return map;
}
public User getUser() {
User user = new User();
user.setAdd("上海");
user.setName("刘德华");
return user;
}
public List getList() {
List list = new ArrayList();
list.add("a");
list.add(getUser());
list.add(getMap());
return list;
}
}
[/code]
web.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>ihessian</servlet-name>
<servlet-class>hessian.HessianImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ihessian</servlet-name>
<url-pattern>/hessian.ao</url-pattern>
</servlet-mapping>
</web-app>
[/code]
2.客户端代码
[code]
package hessian;
import java.net.MalformedURLException;
import com.caucho.hessian.client.HessianProxyFactory;
public class TestHessian {
public static void main(String[] args) {
String url = "http://localhost:8080/hessian/hessian.ao";
HessianProxyFactory factory = new HessianProxyFactory();
IHessian h = null;
try {
h = (IHessian) factory.create(IHessian.class, url);
} catch (MalformedURLException e) {
System.out.println("occur exception: " + e);
}
System.out.println(h.say("world"));
System.out.println(h.getMap());
System.out.println(h.getList());
}
}
[/code]
1.服务端代码:
IHessian.java:
package hessian;
import java.util.List;
import java.util.Map;
public interface IHessian {
public String say(String msg);
public Map getMap();
public User getUser();
public List getList();
}
HessianImpl.java
[code]
package hessian;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.caucho.hessian.server.HessianServlet;
public class HessianImpl extends HessianServlet implements IHessian{
public String say(String msg) {
return "Hello " + msg;
}
public Map getMap() {
Map map = new HashMap();
map.put("work", "任务");
return map;
}
public User getUser() {
User user = new User();
user.setAdd("上海");
user.setName("刘德华");
return user;
}
public List getList() {
List list = new ArrayList();
list.add("a");
list.add(getUser());
list.add(getMap());
return list;
}
}
[/code]
web.xml
[code]
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>ihessian</servlet-name>
<servlet-class>hessian.HessianImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ihessian</servlet-name>
<url-pattern>/hessian.ao</url-pattern>
</servlet-mapping>
</web-app>
[/code]
2.客户端代码
[code]
package hessian;
import java.net.MalformedURLException;
import com.caucho.hessian.client.HessianProxyFactory;
public class TestHessian {
public static void main(String[] args) {
String url = "http://localhost:8080/hessian/hessian.ao";
HessianProxyFactory factory = new HessianProxyFactory();
IHessian h = null;
try {
h = (IHessian) factory.create(IHessian.class, url);
} catch (MalformedURLException e) {
System.out.println("occur exception: " + e);
}
System.out.println(h.say("world"));
System.out.println(h.getMap());
System.out.println(h.getList());
}
}
[/code]