ksoap2 подключение к web-сервису

448
17 июня 2017, 12:28

Есть код:

   public class SrvConnectHelper extends AsyncTask< Void,Void,String> {
        private String host;
        private String username;
        private final String NAMESPACE = "http://www.nameorg.org";
        private final String SOAP_ACTION =NAMESPACE+"#exchange";
        public SrvConnectHelper(String host,String username){
            this.host = "http://"+host+":8080/LT/ws/exchange?wsdl";
            this.username = username;
        }
        @Override
        protected String doInBackground(Void... params) {
            SoapObject resultRequestSoap;
            SoapObject request = new SoapObject(NAMESPACE,
                    "getNomen");
            //SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(110);
            HttpTransportBasicAuth httpTransport = new HttpTransportBasicAuth(host,username,"");
            httpTransport.debug = true;
            try {
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.setOutputSoapObject(request);
                httpTransport.call(SOAP_ACTION, envelope);
                resultRequestSoap = (SoapObject) envelope.getResponse();
                return resultRequestSoap.toString();
            } catch (XmlPullParserException e) {
                e.printStackTrace();
                return "Unable to read XML: "+e.toString();
            }catch (IOException e){
                e.printStackTrace();
                return "Unable to read XML: "+e.toString();
            }
        }
    }

Есть web-сервис, который опубликован средствами 1с, имя сервиса "exchange", пространство имен "http://www.nameorg.org". Проблема в том, что приложение вылетает на этой строке:

httpTransport.call(SOAP_ACTION, envelope);

Думаю неправильно задал SOAP_ACTION, как исправить ошибку?

Вот кстати логи:

06-15 13:54:57.512 17604-17699/ua.com.liverpoll.client1c E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
                                                                           Process: ua.com.liverpoll.client1c, PID: 17604
                                                                           java.lang.RuntimeException: An error occured while executing doInBackground()
                                                                               at android.os.AsyncTask$3.done(AsyncTask.java:304)
                                                                               at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
                                                                               at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
                                                                               at java.lang.Thread.run(Thread.java:818)
                                                                            Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/microedition/io/Connector;
                                                                               at org.ksoap2.transport.ServiceConnectionMidp.<init>(ServiceConnectionMidp.java:32)
                                                                               at org.ksoap2.transport.HttpTransportBasicAuth.getServiceConnection(HttpTransportBasicAuth.java:55)
                                                                               at org.ksoap2.transport.HttpTransport.call(HttpTransport.java:136)
                                                                               at ua.com.liverpoll.client1c.SrvConnectHelper.doInBackground(SrvConnectHelper.java:33)
                                                                               at ua.com.liverpoll.client1c.SrvConnectHelper.doInBackground(SrvConnectHelper.java:13)
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:292)
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                                               at java.lang.Thread.run(Thread.java:818) 
                                                                            Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.microedition.io.Connector" on path: DexPathList[[zip file "/data/app/ua.com.liverpoll.client1c-1/base.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_dependencies_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_0_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_1_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_2_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_3_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_4_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_5_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_6_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_7_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_8_apk.apk", zip file "/data/app/ua.com.liverpoll.client1c-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                                                                               at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                               at org.ksoap2.transport.ServiceConnectionMidp.<init>(ServiceConnectionMidp.java:32) 
                                                                               at org.ksoap2.transport.HttpTransportBasicAuth.getServiceConnection(HttpTransportBasicAuth.java:55) 
                                                                               at org.ksoap2.transport.HttpTransport.call(HttpTransport.java:136) 
                                                                               at ua.com.liverpoll.client1c.SrvConnectHelper.doInBackground(SrvConnectHelper.java:33) 
                                                                               at ua.com.liverpoll.client1c.SrvConnectHelper.doInBackground(SrvConnectHelper.java:13) 
                                                                               at android.os.AsyncTask$2.call(AsyncTask.java:292) 
                                                                               at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                                                                               at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                                                                               at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                                                                               at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                                                                               at java.lang.Thread.run(Thread.java:818) 
                                                                            Suppressed: java.lang.ClassNotFoundException: javax.microedition.io.Connector
                                                                               at java.lang.Class.classForName(Native Method)
                                                                               at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                               at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                    ... 12 more
                                                                            Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Answer 1

Похоже, что вы не тот билд k2souap взяли, потому что вот сама ошибка:

Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.microedition.io.Connector"

Это билд для J2ME (MIDP), вам же нужен Android
https://github.com/simpligility/ksoap2-android

READ ALSO
Интеграционный-тест Spring Boot REST API

Интеграционный-тест Spring Boot REST API

Привет, нужна помощь!

526
Как починить &ldquo;эффект прыжка&rdquo; при подъеме клавиатуры

Как починить “эффект прыжка” при подъеме клавиатуры

В своем фрагменте я использую расширяемое view, которое, в зависимости от того куда юзер делает скролл, либо сворачивается, либо разворачивается

342
Замена значения ключа в файле json

Замена значения ключа в файле json

Есть файл с настройками стороннего приложения jsonВ файле есть координаты GPS, которые надо изменить на мои

276
Особенности работы дженериков в Java

Особенности работы дженериков в Java

Прежде чем отвечать, прошу вдумчиво прочитать и осмыслить вопросИтак у нас есть такой код, он скомпилируется и никаких ошибок не будет:

368