先写一个interface:
import com.alibaba.fastjson.JSONObject; public interface Hello { String sayHello(String name); JSONObject findHero(String name); }
写一个interface的实现类:
import com.alibaba.fastjson.JSONObject; import com.caucho.hessian.server.HessianServlet; public class HelloImpl extends HessianServlet implements Hello { private static final long serialVersionUID = 1464625224364842441L; @Override public String sayHello(String name) { return "Hello " + name; } @Override public JSONObject findHero(String name) { JSONObject hero = new JSONObject(); hero.put("name", name); hero.put("age", "76"); return hero; } }
将这个实现类加到jettyserver中:
- import org.eclipse.jetty.server.Server;
- import org.eclipse.jetty.servlet.ServletContextHandler;
- import org.eclipse.jetty.servlet.ServletHolder;
- public class HessianTest {
- public static void main(String[] args) throws Exception {
- Server server = new Server(3389);
- ServletContextHandler context = new ServletContextHandler(
- ServletContextHandler.SESSIONS);
- server.setHandler(context);
- ServletHolder servletHolder = new ServletHolder(new HelloImpl());
- context.addServlet(servletHolder, "/hello");
- server.start();
- server.join();
- }
- }
运行HessianTest,此时,jettyserver就启动了,然后再写个测试的client:
public class TestApp { public static void main(String[] args) { try { HessianProxyFactory factory = new HessianProxyFactory(); String url = "http://localhost:3389/hello"; Hello us = (Hello)factory.create(Hello.class,url); String jsonObject = us.sayHello("123"); System.out.println(jsonObject); JSONObject hero = us.findHero("张飞"); System.out.println(hero); } catch (Exception e) { e.printStackTrace(); } } }
返回结果:
Hello 123
{"name":"张飞","age":"76"}
表示成功!!!