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>
 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ray3868/archive/2008/10/11/3057909.aspx

posted @ 2009-08-06 16:42  meetrice  阅读(675)  评论(0编辑  收藏  举报