1

HashMap Key 、 value から取得する2つの整数変数を持つAndroidコードがあります。

これら 2 つの変数を SOAP Web サービスに渡そうとしていますが、何も起こりませんでした。

注 1: WebService コードが機能しており、正しいデータをデータベースに入力していると確信しています。テストしました。

注2:FROMデバッグは、「SID」と「ステータス」が正しい値を持っていることを示しています。

しかし、これらの値を SOAP に送信する際の問題。

Android アクティビティの完全な SOAP コード:

sumbit.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            for (Map.Entry<Integer, Integer> mapEntry : checkBoxState
                    .entrySet()) {
                int SID = mapEntry.getKey();
                int status = mapEntry.getValue();

                Toast.makeText(context,
                        String.valueOf(SID) + String.valueOf(status),
                        Toast.LENGTH_SHORT).show();
                try {
                    SoapObject request = new SoapObject(NAMESPACE,
                            METHOD_NAME);
                    HttpTransportSE androidHttpTransport = new HttpTransportSE(
                            URL);
                    PropertyInfo pi = new PropertyInfo();
                    pi.setName("SID");
                    pi.setValue(SID);
                    pi.setType(Integer.class);
                    request.addProperty(pi);

                    PropertyInfo pi2 = new PropertyInfo();
                    pi2.setName("status");
                    pi2.setValue(status);
                    pi2.setType(Integer.class);
                    request.addProperty(pi2);

                    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                            SoapEnvelope.VER11);
                    envelope.setOutputSoapObject(request);
                    androidHttpTransport.call(SOAP_ACTION, envelope);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }


            }

完全な webService メソッド コード:

public void insertApsentData(int SID , int status ) throws SQLException, ClassNotFoundException, ReflectiveOperationException, Throwable{

// Make new Connection to database .
Dbconnection NewConnect = new Dbconnection();
Connection con = NewConnect.MakeConnect();
Statement stmt = con.createStatement();

// this i'm usre is working fine 
stmt.executeUpdate("INSERT INTO apsent SET course_id=1, teacher_id= 1 , class_id= 3 , interval_id= 5 , day_id = 1 , APSSENT_DATE = CURdate() ,state = " + status + ", student_id = " + SID +" ,school_id = 1;");//called the procedure


     }
4

2 に答える 2

0

私は以前にこの問題を抱えていました。Eclipseを使用して wsdl を生成しようとしましたか? (6ページ参照)。このツールは、Web サービスのクライアント コードを生成し、次のようなものを簡単に呼び出すことができます。

ServiceProxy.insertApsentData(args)
于 2013-09-14T03:06:35.880 に答える
0

いくつかのプロジェクト フォルダーが閉じられています。もう一度開いたところ、現在は機能しています。

于 2013-09-14T05:45:15.643 に答える