0

I am trying to call web service url in android using Soap. But i am getting an error

  "java.net.UnknownHostException: Unable to resolve host "manvswsc00": No address associated with hostname" .  

I have added internet permission in my AndroidManifest file . Can somebody help me to resolve this issue.

In MyActivity.java i created an Activity , which calls the web service Url using Async Taski.e. in background .

In Soap.java , is used to call webservice Url using Soap .

Can some please check webservice url also, did i have done something wrong while selecting NAMESPACE, URL, METHOD,SOAP_ACTION.

Logs :

    03-03 16:40:18.367    2500-2513/? W/System.err﹕ java.net.UnknownHostException: Unable to resolve host "manvswsc00": No address associated with hostname
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.lookupHostByName(InetAddress.java:470)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at java.net.InetAddress.getAllByName(InetAddress.java:215)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:188)
    03-03 16:40:18.375    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:157)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:100)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:357)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:340)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:433)
    03-03 16:40:18.376    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:114)
    03-03 16:40:18.403    1630-1880/? E/Surface﹕ getSlotFromBufferLocked: unknown buffer: 0xb4013a40
    03-03 16:40:18.409    2500-2513/? W/System.err﹕ at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:245)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.ServiceConnectionSE.openOutputStream(ServiceConnectionSE.java:130)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.sendData(HttpTransportSE.java:292)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:184)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at com.example.myapp.Soap.GetResponse(Soap.java:35)
    03-03 16:40:18.490    2500-2513/? W/System.err﹕ at com.example.myapp.MyActivity$AsyncCallSoap.doInBackground(MyActivity.java:32)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at com.example.myapp.MyActivity$AsyncCallSoap.doInBackground(MyActivity.java:26)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:295)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    03-03 16:40:18.586    2500-2513/? W/System.err﹕ at libcore.io.Posix.android_getaddrinfo(Native Method)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ at java.net.InetAddress.lookupHostByName(InetAddress.java:451)
    03-03 16:40:18.592    2500-2513/? W/System.err﹕ ... 26 more

MyActivity.java

    package com.example.myapp;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.TextView;

    public class MyActivity extends Activity {
        TextView txt;

        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            txt = (TextView) findViewById(R.id.textView);
             new AsyncCallSoap().execute();
        }

        public  class AsyncCallSoap extends AsyncTask<String, Void, String>
        {
            private final ProgressDialog dialog = new ProgressDialog(getApplicationContext());
            protected String doInBackground(String... params) {
                Soap CS = new Soap();
                String response = CS.GetResponse();
                Log.d("MyApp", "response:" + response);
                return response;
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                dialog.dismiss();
                txt.setText(result);
            }
        }
    }

Soap.java

    package com.example.myapp;

    import android.util.Log;
    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 org.xmlpull.v1.XmlPullParserException;

    import java.io.IOException;

    public class Soap {
       private String resp;
        public String GetResponse() {
             String URL = "http://manvswsc00:9085/bfweb/services/CreateAccount?wsdl";
            String NAMESPACE = "http://CreateAccount";
            String SOAP_ACTION_PREFIX = "/";
             String METHOD = "CB_ACC_CreateAccount_SRV";
            String SOAP_ACTION = " http://CreateAccount/CreateAccountPortType/CB_ACC_CreateAccount_SRVRequest";

                SoapObject request = new SoapObject(NAMESPACE, METHOD);
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
            try {
                HttpTransportSE transport = new HttpTransportSE(URL);
                transport.debug=true;
                    transport.call(SOAP_ACTION, envelope);
                    resp = envelope.getResponse().toString();
                    Log.d("MyApp", "Response :" + resp);
                } catch (Exception e) {
                    Log.d("MyApp","Exception");
                e.printStackTrace();
                resp = e.getMessage();
            }
            return resp;
        }`enter code here`
    }

AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.example.myapp"
              android:versionCode="1"
              android:versionName="1.0">
        <uses-sdk android:minSdkVersion="10"/>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
            <activity android:name="MyActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>

    </manifest>`enter code here`

webservice :

<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:scns="http://webservices.bankfusion.trapedza.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsns="http://CreateAccount" name="CreateAccountService" targetNamespace="http://CreateAccount">
<wsdl:types>
<xsd:schema xmlns="http://webservices.bankfusion.trapedza.com" xmlns:bf="http://www.misys.com/bankfusion/attributes" xmlns:ct0="http://www.misys.com/cbs/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://webservices.bankfusion.trapedza.com">
<xsd:import namespace="http://www.misys.com/bankfusion/attributes" schemaLocation="http://10.117.208.174:9085/bfweb/servlet/XSDServlet?resourceID=bf/com/misys/bankfusion/attributes/BFHeader"/>
<xsd:import namespace="http://www.misys.com/cbs/types" schemaLocation="http://10.117.208.174:9085/bfweb/servlet/XSDServlet?resourceID=bf/com/misys/cbs/types/CreateAccountRq"/>
<xsd:element name="bfgenericsoapheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" ref="authentication"/>
<xsd:element name="BFHeader" type="bf:BFHeader"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:group name="authgroup">
<xsd:sequence>
<xsd:element name="userName" type="xsd:string"/>
<xsd:element name="password" type="xsd:string"/>
</xsd:sequence>
</xsd:group>
<xsd:element name="authentication">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="authgroup"/>
<xsd:element minOccurs="0" ref="passCode"/>
<xsd:element minOccurs="0" ref="userLocator"/>
<xsd:element minOccurs="0" ref="casRestletUrl"/>
<xsd:element minOccurs="0" ref="casValidateUrl"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="password" type="xsd:string"/>
<xsd:element name="userLocator" type="xsd:string"/>
<xsd:element name="userName" type="xsd:string"/>
<xsd:element name="passCode" type="xsd:string"/>
<xsd:element name="casRestletUrl" type="xsd:string"/>
<xsd:element name="casValidateUrl" type="xsd:string"/>
<xsd:element name="CB_ACC_CreateAccount_SRV" type="scns:CB_ACC_CreateAccount_SRVType"/>
<xsd:complexType name="CB_ACC_CreateAccount_SRVType">
<xsd:sequence>
<xsd:element name="createAccountRq" type="ct0:createAccountRq"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CB_ACC_CreateAccount_SRVResponse" type="scns:CB_ACC_CreateAccount_SRVResponseType"/>
<xsd:complexType name="CB_ACC_CreateAccount_SRVResponseType">
<xsd:sequence>
<xsd:element name="createAccountRs" type="ct0:createAccountRs"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="bfgenericsoapheader">
<wsdl:part name="bfgenericsoapheader" element="scns:bfgenericsoapheader"></wsdl:part>
</wsdl:message>
<wsdl:message name="CB_ACC_CreateAccount_SRVResponse">
<wsdl:part name="CB_ACC_CreateAccount_SRVResponse" element="scns:CB_ACC_CreateAccount_SRVResponse"></wsdl:part>
</wsdl:message>
<wsdl:message name="CB_ACC_CreateAccount_SRVRequest">
<wsdl:part name="CB_ACC_CreateAccount_SRVRequest" element="scns:CB_ACC_CreateAccount_SRV"></wsdl:part>
</wsdl:message>
<wsdl:portType name="CreateAccountPortType">
<wsdl:operation name="CB_ACC_CreateAccount_SRV">
<wsdl:input message="wsns:CB_ACC_CreateAccount_SRVRequest"></wsdl:input>
<wsdl:output message="wsns:CB_ACC_CreateAccount_SRVResponse"></wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CreateAccountSoapBinding" type="wsns:CreateAccountPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="CB_ACC_CreateAccount_SRV">
<soap:operation soapAction="http://CreateAccount/CreateAccountPortType/CB_ACC_CreateAccount_SRVRequest"/>
<wsdl:input>
<soap:body parts="CB_ACC_CreateAccount_SRVRequest" use="literal"/>
<soap:header message="wsns:bfgenericsoapheader" part="bfgenericsoapheader" use="literal"></soap:header>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CreateAccountService">
<wsdl:port name="CreateAccountPort" binding="wsns:CreateAccountSoapBinding">
<soap:address location="http://10.117.208.174:9085/bfweb/services/CreateAccount"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
USER9561
  • 1,084
  • 3
  • 15
  • 41
Aamir
  • 11
  • 4
  • replace `manvswsc00:9085` with ip address of server in `Soap.java`... check this http://stackoverflow.com/questions/8651043/android-browser-hostnames-does-not-get-resolved-if-domain-name-is-not-appended – ELITE Mar 03 '16 at 11:57
  • I have changed the Url from manvswsc00 to IP Adress . Now , i am getting another Error. Now i am getting another ERROR : SoapFault - faultcode: 'soapenv:Server' faultstring: 'Missing authentication element' faultactor: 'null' detail: org.kxml2.kdom.Node@b0687d4 . Can some one check is I am using correct SOAPACTION, NAMESPACE, METHOD NAME. Please let me know – Aamir Mar 03 '16 at 16:57

3 Answers3

0

You are executing rest service using String URL = "http://manvswsc00:9085/bfweb/services/CreateAccount?wsdl"; this url.

You have to change the server name manvswsc00:9085 to the IP Address of that server.

For reference check Android Browser hostnames does not get resolved if domain name is not appended.

It'll solve your problem.

Community
  • 1
  • 1
ELITE
  • 5,815
  • 3
  • 19
  • 29
  • I have changed the Url from manvswsc00 to IP Adress . Now , i am getting another Error. Now i am getting another ERROR : SoapFault - faultcode: 'soapenv:Server' faultstring: 'Missing authentication element' faultactor: 'null' detail: org.kxml2.kdom.Node@b0687d4 . Can some one check is I am using correct SOAPACTION, NAMESPACE, METHOD NAME. Please let me know – Aamir Mar 03 '16 at 16:54
0

I think that your service was implemented on local host. So when you try to connect to it on your device. Your device can't find your webservice. You can try to open your service by using browser.

NhatVM
  • 1,964
  • 17
  • 25
  • I have changed the Url from manvswsc00 to IP Adress . Now , i am getting another Error. Now i am getting another ERROR : SoapFault - faultcode: 'soapenv:Server' faultstring: 'Missing authentication element' faultactor: 'null' detail: org.kxml2.kdom.Node@b0687d4 . Can some one check is I am using correct SOAPACTION, NAMESPACE, METHOD NAME. Please let me know – Aamir Mar 03 '16 at 16:57
0

The error "Missing authentication element" is particular to how this banking platform is authenticating each request. They require you send in the header "authentication" element the "userName" and "password". That will resolve this problem. ie: { authentication: {userName: ´xxx´, password: ´xxx´} }

or fill out the header if you are sending pure xml.

Mario Estrada
  • 311
  • 2
  • 4