0

JAX-WS、WSDLで構築したWebサービスからデータを取得しようとしていますが、AndroidListViewに実装したいと考えています。

これは、Netbeans上に構築したWebサービスのコードです。

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package in.figures.on.mobile;

import db.koneksi.dbKoneksi;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import org.json.simple.JSONValue;

/**
 *
 * @author Setyadi
 */
@WebService()
public class AksesData {

    /**
     * Web service operation
     */
    @WebMethod(operationName = "Lokasiku")
    public String Lokasiku(
            @WebParam(name = "lon") String lon,
            @WebParam(name = "lat") String lat) {
        //TODO write your implementation code here:

        dbKoneksi con = new dbKoneksi();
        Statement statement;
        String sql = "SELECT desa "
                + "FROM dki "
                + "WHERE ST_Within(ST_SetSRID(ST_MakePoint("+lon+","+lat+"),0),geom);";
        ResultSet hasil;
        String desa = null;

        try{
            statement = con.getConnection().createStatement();
            hasil = statement.executeQuery(sql);
            hasil.next();
            desa = hasil.getString(1);
        }
        catch(Exception e){
            desa = "desa_thegagals";
        }
        finally{

        }

        if (con != null)  {
            return desa;
        }
        else  {
            return "lokasiku_thegagals";
        }
    }

    /**
     * Web service operation
     */
    @WebMethod(operationName = "Kategori")
    public String Kategori() {
        //TODO write your implementation code here:

        dbKoneksi con = new dbKoneksi();
        Statement statement;
        Properties properties;
        List list = new ArrayList();
        String sql = "SELECT kategori FROM kategori ";
        ResultSet hasil;
        String kategori = null;

        try{
            statement = con.getConnection().createStatement();
            hasil = statement.executeQuery(sql);
            while (hasil.next()) {
                properties = new Properties();
                properties.put("kategori", hasil.getString(1));
                list.add(properties);
            }
            kategori = JSONValue.toJSONString(list);
        }
        catch(Exception e){
        }

        return kategori;
    }

}

誰かが私を助けたいと思っていますか、少なくともこれについてのチュートリアルを教えてください。前もって感謝します

4

2 に答える 2

2

Android は、SOAP Web サービスをサポートしていません。彼らは、XML または JSON で RESTful Web サービスを使用することを好みます。ただし、そこにはいくつかの SOAP ライブラリがあります。KSOAP は非常に人気があり、個人的には問題がありました。http://ksoap2.sourceforge.net/

別の提案は icesoap です。それは使用して理解するのが非常に簡単なライブラリであり、私にとって魅力的に機能しました。 http://code.google.com/p/icesoap/

于 2012-06-30T15:10:42.387 に答える
0

2D 配列のデータを返すには、データを取得して文字列に変換するだけです。次に、配列に格納します

rs = s.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
colCount = rsmd.getColumnCount();
String[][] result;
result = new String[size][rsmd.getColumnCount()];

int j=0;
            while(rs.next()) 
            {

                for (int i = 1; i <= colCount; i++) 
                {

                    Object value=null;
                if(!rsmd.getColumnTypeName(i).matches("varchar"))
                {
                    if(rsmd.getColumnTypeName(i).matches("decimal"))
                        value=(Object)rs.getDouble(i);
                    else
                        value=(Object)rs.getObject(i);
                }
                    else
                    {
                        value = (Object)rs.getString(i);
                    }
                    if(value!=null)
                    {
                        result[j][i-1]=value.toString();
                    }
                    else
                    {
                        result[j][i-1]="--";
                    }
                }j++;
            }
        }
        catch (SQLException | ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

そして、Androidフォンのおもちゃでは、その配列を取得して適切なデータ型に変換する必要があります。

表示する場合は、そのまま表示できます。元のデータ型に変換する必要はありません。

于 2012-07-03T12:17:28.037 に答える