天天看點

[hessdroid]Android下使用Hessian與Java服務端通訊

一、準備

    1.1  下載下傳源碼

      下載下傳Mercurial,安裝完之後右鍵TortoiseHg->Clone->Source Path,輸入"https://hessdroid.googlecode.com/hg/"下載下傳即可。

    1.2  打包成jar

      源碼直接用eclipse導入即可,然後導出成jar即可,這裡我導成了hessdroid.jar。懶得自己導的可以從這裡下載下傳:http://download.csdn.net/source/2584651。

二、通訊接口

    和WebService一樣,準備一個接口:

public interface BasicAPI {

  public String hello();

}

  二、服務端

    服務端為Tomcat+Servlet。

    2.2  BasicService.java

public class BasicService extends HessianServlet implements BasicAPI {

  private String _greeting = "Hello, world";

  public void setGreeting(String greeting)

  {

    _greeting = greeting;

  }

  public String hello()

    return _greeting;

    2.3  在web.xml中配置接受servlet,這裡寫成:

    <servlet>

         <servlet-name>hello</servlet-name>

         <servlet-class>com.BasicService</servlet-class>

    </servlet>

      <servlet-mapping>

          <servlet-name>hello</servlet-name>

          <url-pattern>/hello.do</url-pattern>

      </servlet-mapping>

三、用戶端

    3.1  建立Android項目,導入hessdroid.jar(别搞混淆了,是自己打包生成的那個jar包)。

    3.2  在界面上添加一個按鈕,并添加點選事件:

    public void OnClick11(View view)

    {

        String url = "http://192.168.1.1:8080/HessianServer/hello.do";

        HessianProxyFactory factory = new HessianProxyFactory();

        try {

            factory.setDebug(true);

            factory.setReadTimeout(5000);

            BasicAPI basic = (BasicAPI)factory.create(BasicAPI.class, url,getClassLoader());

            Toast.makeText(this, "調用結果:"+basic.hello(), Toast.LENGTH_LONG).show();

        } catch (MalformedURLException e) {

            e.printStackTrace();

        }

    }

    3.3  成功截圖:

[hessdroid]Android下使用Hessian與Java服務端通訊

維護

  2010-11-11

    由jiangcoco分享的經驗:連接配接伺服器出現hessianConncectionException錯誤,模拟器上還好,真機上比較明顯,可能是由于網絡原因造成,此時應該把逾時時間設定稍晚長一些。

     2011-8-9

           提醒大家記得權重限:<uses-permission android:name="android.permission.INTERNET" /> 

     2011-9-26

            補充Hessian兩篇文章:

繼續閱讀