4

SOAP Web サービスも利用する Mysql データベースに接続する Android アプリケーションを作成しています。

Android シミュレーターでアプリケーションを実行すると、次のメッセージが表示されます。メッセージは [Ljava.lang.String;@44f565fo です。

このメッセージが表示される理由を知りたいです。

これが私の Java Web サービス コードです。

package com.retailer.ws;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
public class RetailerWS {
  public String customerData(){
  String customerInfo = "";
  try{
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/retailer","root","chathura");
    //Find customer information where the customer ID is maximum
    PreparedStatement statement
          =  con.prepareStatement("SELECT * FROM customers WHERE C_ID = (SELECT MAX(C_ID) FROM customer)");
    ResultSet result = statement.executeQuery();

    while(result.next()){
      customerInfo = customerInfo
                      + result.getString("name")
                      + "&" + result.getString("C_ID") 
                      + "&"+result.getString("address") 
                      + "&"+result.getString("email");
      // Here "&"s are added to the return string. 
      // This is help to split the string in Android application
    }
  } catch(Exception exc){
    System.out.println(exc.getMessage());
  }
    return customerInfo;
 }
}

Android アプリケーションのコードは次のとおりです。

package com.retailer.client;

import android.app.Activity;
import android.os.Bundle;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.widget.TextView;

public class RetailerActivity extends Activity {
  private static final String SOAP_ACTION = "http://ws.retailer.com/customerData";
  private static final String METHOD_NAME = "customerData";
  private static final String NAMESPACE = "http://ws.retailer.com/";
  private static final String URL = "http://175.157.234.156:8085/ForBlog/services/RetailerWS?wsdl";
  @Override
  public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

     envelope.setOutputSoapObject(request);

     HttpTransportSE ht = new HttpTransportSE(URL);
     try {
         ht.call(SOAP_ACTION, envelope);
         SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
         SoapPrimitive s = response;
         String str = s.toString();
         String resultArr[] = str.split("&");//Result string will split & store in an array

         TextView tv = new TextView(this);

         for(int i = 0; i<resultArr.length;i++){
           tv.append(resultArr[i]+"\n\n");
         }
         setContentView(tv);
     } catch (Exception e) {
        e.printStackTrace();
    }
   }
  }

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

</LinearLayout>

Android マニフェスト ファイルでは、インターネット アクセス許可も有効になっています。

[Ljava.lang.String;@44f565fo dis メッセージが表示されるのはなぜですか?

これらは私のlogcatウィンドウです:

05-23 14:15:10.371: D/AndroidRuntime(3876): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
05-23 14:15:10.371: D/AndroidRuntime(3876): CheckJNI is ON
05-23 14:15:10.520: D/AndroidRuntime(3876): --- registering native functions ---
05-23 14:15:11.191: D/dalvikvm(179): GC_EXPLICIT freed 133 objects / 6720 bytes in 52ms
05-23 14:15:11.231: D/PackageParser(71): Scanning package: /data/app/vmdl70326.tmp
05-23 14:15:11.241: W/PackageParser(71): Unknown element under <application>: uses-permission at /data/app/vmdl70326.tmp Binary XML file line #21
05-23 14:15:11.341: I/PackageManager(71): Removing non-system package:com.retailer.client
05-23 14:15:11.341: I/ActivityManager(71): Force stopping package com.retailer.client uid=10040
05-23 14:15:11.361: I/Process(71): Sending signal. PID: 3868 SIG: 9
05-23 14:15:11.381: I/WindowManager(71): WIN DEATH: Window{44fbd530 com.retailer.client/com.retailer.client.RetailerActivity paused=false}
05-23 14:15:11.401: I/UsageStats(71): Unexpected resume of pack.GetImage while already resumed in com.retailer.client
05-23 14:15:11.421: W/InputManagerService(71): Got RemoteException sending setActive(false) notification to pid 3868 uid 10040
05-23 14:15:11.810: D/PackageManager(71): Scanning package com.retailer.client
05-23 14:15:11.810: I/PackageManager(71): Package com.retailer.client codePath changed from /data/app/com.retailer.client-2.apk to /data/app/com.retailer.client-1.apk; Retaining data and using new
05-23 14:15:11.810: I/PackageManager(71): /data/app/com.retailer.client-1.apk changed; unpacking
05-23 14:15:11.820: D/installd(35): DexInv: --- BEGIN '/data/app/com.retailer.client-1.apk' ---
05-23 14:15:12.000: D/dalvikvm(3883): DexOpt: 'Lorg/xmlpull/v1/XmlPullParser;' has an earlier definition; blocking out
05-23 14:15:12.000: D/dalvikvm(3883): DexOpt: 'Lorg/kxml2/io/KXmlParser;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/xmlpull/v1/XmlSerializer;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/kxml2/io/KXmlSerializer;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/kxml2/kdom/Node;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/kxml2/kdom/Document;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/kxml2/kdom/Element;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserException;' has an earlier definition; blocking out
05-23 14:15:12.010: D/dalvikvm(3883): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserFactory;' has an earlier definition; blocking out
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.111: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.121: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.131: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParser;'
05-23 14:15:12.131: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/kxml2/io/KXmlSerializer;'
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParser;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/kxml2/io/KXmlParser;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlSerializer;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/kxml2/io/KXmlSerializer;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/kxml2/kdom/Node;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/kxml2/kdom/Document;': multiple definitions
05-23 14:15:12.141: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/kxml2/kdom/Element;': multiple definitions
05-23 14:15:12.141: I/dalvikvm(3883): DexOpt: not resolving ambiguous class 'Lorg/xmlpull/v1/XmlPullParserException;'
05-23 14:15:12.161: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParserException;': multiple definitions
05-23 14:15:12.161: D/dalvikvm(3883): DexOpt: not verifying 'Lorg/xmlpull/v1/XmlPullParserFactory;': multiple definitions
05-23 14:15:12.171: D/dalvikvm(3883): DexOpt: load 53ms, verify 150ms, opt 7ms
05-23 14:15:12.181: D/installd(35): DexInv: --- END '/data/app/com.retailer.client-1.apk' (success) ---
05-23 14:15:12.191: W/PackageManager(71): Code path for pkg : com.retailer.client changing from /data/app/com.retailer.client-2.apk to /data/app/com.retailer.client-1.apk
05-23 14:15:12.191: W/PackageManager(71): Resource path for pkg : com.retailer.client changing from /data/app/com.retailer.client-2.apk to /data/app/com.retailer.client-1.apk
05-23 14:15:12.191: D/PackageManager(71):   Activities: com.retailer.client.RetailerActivity
05-23 14:15:12.201: I/ActivityManager(71): Force stopping package com.retailer.client uid=10040
05-23 14:15:12.331: I/installd(35): move /data/dalvik-cache/data@app@com.retailer.client-1.apk@classes.dex -> /data/dalvik-cache/data@app@com.retailer.client-1.apk@classes.dex
05-23 14:15:12.331: D/PackageManager(71): New package installed in /data/app/com.retailer.client-1.apk
05-23 14:15:12.490: I/ActivityManager(71): Force stopping package com.retailer.client uid=10040
05-23 14:15:12.630: D/dalvikvm(71): GC_EXPLICIT freed 7314 objects / 513320 bytes in 113ms
05-23 14:15:12.890: D/dalvikvm(71): GC_EXPLICIT freed 2977 objects / 155072 bytes in 101ms
05-23 14:15:12.890: D/dalvikvm(190): GC_EXPLICIT freed 878 objects / 50848 bytes in 197ms
05-23 14:15:12.950: W/RecognitionManagerService(71): no available voice recognition services found
05-23 14:15:13.081: I/installd(35): unlink /data/dalvik-cache/data@app@com.retailer.client-2.apk@classes.dex
05-23 14:15:13.100: D/AndroidRuntime(3876): Shutting down VM
05-23 14:15:13.100: D/dalvikvm(3876): Debugger has detached; object registry had 1 entries
05-23 14:15:13.131: I/dalvikvm(3876): JNI: AttachCurrentThread (from ???.???)
05-23 14:15:13.131: I/AndroidRuntime(3876): NOTE: attach of thread 'Binder Thread #3' failed
05-23 14:15:13.530: D/AndroidRuntime(3889): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
05-23 14:15:13.530: D/AndroidRuntime(3889): CheckJNI is ON
05-23 14:15:13.670: D/AndroidRuntime(3889): --- registering native functions ---
05-23 14:15:14.271: I/ActivityManager(71): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.retailer.client/.RetailerActivity }
05-23 14:15:14.301: I/ActivityManager(71): Start proc com.retailer.client for activity com.retailer.client/.RetailerActivity: pid=3895 uid=10040 gids={}
05-23 14:15:14.331: D/AndroidRuntime(3889): Shutting down VM
05-23 14:15:14.341: D/dalvikvm(3889): Debugger has detached; object registry had 1 entries
05-23 14:15:14.381: I/dalvikvm(3889): JNI: AttachCurrentThread (from ???.???)
05-23 14:15:14.381: I/AndroidRuntime(3889): NOTE: attach of thread 'Binder Thread #3' failed
05-23 14:15:14.500: D/dalvikvm(33): GC_EXPLICIT freed 259 objects / 10016 bytes in 189ms
05-23 14:15:14.630: D/dalvikvm(33): GC_EXPLICIT freed 17 objects / 712 bytes in 96ms
05-23 14:15:14.840: D/dalvikvm(33): GC_EXPLICIT freed 2 objects / 48 bytes in 214ms
05-23 14:15:15.020: W/System.err(3895): java.net.SocketException: Permission denied
05-23 14:15:15.020: W/System.err(3895):     at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265)
05-23 14:15:15.030: W/System.err(3895):     at java.net.Socket.checkClosedAndCreate(Socket.java:873)
05-23 14:15:15.030: W/System.err(3895):     at java.net.Socket.connect(Socket.java:1020)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927)
05-23 14:15:15.030: W/System.err(3895):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909)
05-23 14:15:15.040: W/System.err(3895):     at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:46)
05-23 14:15:15.040: W/System.err(3895):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:68)
05-23 14:15:15.040: W/System.err(3895):     at com.retailer.client.RetailerActivity.onCreate(RetailerActivity.java:31)
05-23 14:15:15.040: W/System.err(3895):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-23 14:15:15.040: W/System.err(3895):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-23 14:15:15.040: W/System.err(3895):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-23 14:15:15.040: W/System.err(3895):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-23 14:15:15.040: W/System.err(3895):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-23 14:15:15.040: W/System.err(3895):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-23 14:15:15.040: W/System.err(3895):     at android.os.Looper.loop(Looper.java:123)
05-23 14:15:15.040: W/System.err(3895):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-23 14:15:15.050: W/System.err(3895):     at java.lang.reflect.Method.invokeNative(Native Method)
05-23 14:15:15.050: W/System.err(3895):     at java.lang.reflect.Method.invoke(Method.java:521)
05-23 14:15:15.050: W/System.err(3895):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-23 14:15:15.050: W/System.err(3895):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-23 14:15:15.050: W/System.err(3895):     at dalvik.system.NativeStart.main(Native Method)
05-23 14:15:15.241: I/ActivityManager(71): Displayed activity com.retailer.client/.RetailerActivity: 945 ms (total 945 ms)
05-23 14:15:15.421: W/InputManagerService(71): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@44eb2660 (uid=10049 pid=3808)
4

2 に答える 2

0

エラーはここにあります

W/System.err(3895): java.net.SocketException: Permission denied 

http://docs.oracle.com/javase/1.4.2/docs/api/java/net/SocketException.html

コールスタックのトレースを読み上げる

14:15:15.040: W/System.err(3895): 
at com.retailer.client.RetailerActivity.onCreate(RetailerActivity.java:31

これは、実行時に権限の問題があったことを示しています

ht.call(SOAP_ACTION, envelope);

SocketException:アクセスが拒否されましたか?

SoapUiなどの別のWebサービステストツールを使用して、エミュレーターを実行しているマシンからそのWebサービスへの接続を確立できるかどうかを確認します。

于 2012-06-08T08:06:25.597 に答える
0

メソッドを使用しているため、その値が表示されている可能性がありますTextView.append()

このクラスのドキュメントを確認すると、文字列が Charsequence.class に変換され、再び文字の配列があることがわかります...したがって、印刷しているのは配列インスタンスの値にすぎません。メソッドを使用して配列を文字列に変換するだけで機能する場合があります.toString()

setContentView(tv.toString());
于 2012-09-05T12:00:11.037 に答える