jabsorb笔记_几个小例子

  研究了一下 jabsorb,写了几个简单的例子,希望能够帮助菜鸟快速入门。

  首先引用jabsorb-1.2.2.jar,slf4j-api-1.4.2.jar,slf4j-jdk14-1.4.2.jar,jsonrpc.js

  类文件:

  package com.test;

  import java.util.HashMap;

  import java.util.Iterator;

  import java.util.LinkedList;

  import java.util.List;

  import java.util.Map;

  import java.util.Set;

  public class TestJabsorb {

  public String getMessage(String s) {

  return "你好: " + s;

  }

  public String getMessage() {

  return "无参数";

  }

  public String getMessage(List al) {

  String res="list参数:";

  for(Iterator it = al.iterator();it.hasNext();){

  Object next = it.next();

  res+=next+",";

  }

  return res;

  }

  public String getMessage(String[] array) {

  String res="数组参数:";

  for(int i=0;i<array.length;i++){

  res+=array[i]+",";

  }

  return res;

  }

  public String getMessage(Map map) {

  String res="map参数:";

  Set entrySet = map.entrySet();

  for(Iterator it = entrySet.iterator();it.hasNext();){

  Object next = it.next();

  res+=next+",";

  }

  return res;

  }

  public String getMessage(Test2 t2) {

  String res="Test2(bean)参数:";

  res+=t2.p1+",";

  res+=t2.p2+",";

  return res;

  }

  public String getMessage(Test3 t2) {

  String res="Test3(bean)参数:";

  res+=t2.p1+",";

  res+=t2.p2+",";

  return res;

  }

  public Test2 getMessage2() {

  Test2 res=new Test2();

  res.p1="11";

  res.p2="22";

  return res;

  }

  public Test3 getMessage3() {

  Test3 res=new Test3();

  res.p1="11";

  res.p2="22";

  return res;

  }

  public List getList()

  {

  List list = new LinkedList();

  list.add("中国");

  list.add(1234);

  return list;

  }

  public Map getMap()

  {

  Map map = new HashMap();

  map.put("bird", "鸟");

  map.put("human", "人类");

  return map;

  }

  }

  package com.test;

  public class Test2{

  public String p1;

  public String p2;

  public String getP1() {

  return p1;

  }

  public void setP1(String p1) {

  this.p1 = p1;

  }

  public String getP2() {

  return p2;

  }

  public void setP2(String p2) {

  this.p2 = p2;

  }

  }

  package com.test;

  public class Test3{

  public String p1;

  public String p2;

  public String p3;

  public String getP1() {

  return p1;

  }

  public void setP1(String p1) {

  this.p1 = p1;

  }

  public String getP2() {

  return p2;

  }

  public void setP2(String p2) {

  this.p2 = p2;

  }

  public String getP3() {

  return p3;

  }

  public void setP3(String p3) {

  this.p3 = p3;

  }

  }

  jsp文件:

  <%@ page contentType="text/html;charset=gb2312" %>

  <jsp:useBean id="JSONRPCBridge" scope="session" class="org.jabsorb.JSONRPCBridge" />

  <jsp:useBean id="testJabsorb" scope="session" class="com.test.TestJabsorb" />

  <%

  JSONRPCBridge.registerObject("testJabsorb", testJabsorb);

  %>

  <script type="text/javascript" src="<%= request.getContextPath() %>/scripts/jsonrpc.js"></script>

  <script>

  jsonrpc = new JSONRpcClient("JSON-RPC")

  //字符串参数

  var result = jsonrpc.testJabsorb.getMessage('ray2')

  document.write(result+'<br>')

  //无参数

  var result = jsonrpc.testJabsorb.getMessage()

  document.write(result+'<br>')

  //list参数

  var result = jsonrpc.testJabsorb.getMessage({"javaClass":"java.util.ArrayList",'list':['h1','h2','h3']})

  document.write(result+'<br>')

  //数组参数

  var result = jsonrpc.testJabsorb.getMessage(['h1','h2','h3'])

  document.write(result+'<br>')

  //bean参数

  var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test3",p1:11,p2:22,p3:33})

  document.write(result+'<br>')

  //bean参数

  var result = jsonrpc.testJabsorb.getMessage({'javaClass':"com.test.Test2",p1:1,p2:2})

  document.write(result+'<br>')

  //bean返回值

  var res = jsonrpc.testJabsorb.getMessage2()

  printProperty(res)

  //bean返回值

  var res = jsonrpc.testJabsorb.getMessage3()

  printProperty(res)

  //list返回值

  var res = jsonrpc.testJabsorb.getList().list

  printProperty(res)

  //map返回值

  var res = jsonrpc.testJabsorb.getMap().map

  printProperty(res)

  function printProperty(ele){

  for(var p in ele){

  document.write(p+':'+ele[p]+',')

  }

  document.write('<br>')

  }

  //异步调用

  function callback(result,exception){

  if(exception==null){

  //alert(result)

  }

  }

  var result = jsonrpc.testJabsorb.getMessage(callback,'ray2')

  </script>

  web.xml

  <?xml version="1.0" encoding="UTF-8"?>

  <!DOCTYPE web-app

  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"

  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

  <web-app>

  <servlet>

  <servlet-name>JSONRPCServlet</servlet-name>

  <servlet-class>org.jabsorb.JSONRPCServlet</servlet-class>

  <init-param>

  <param-name>gzip_threshold</param-name>

  <param-value>0</param-value>

  </init-param>

  </servlet>

  <servlet-mapping>

  <servlet-name>JSONRPCServlet</servlet-name>

  <url-pattern>/JSON-RPC</url-pattern>

  </servlet-mapping>

  </web-app>