Java web service consumable in java app but not in android app -


as shown in below screenshot, have created web service(in java) , client application(android app) following this article.

i got build successful message after creating ant build file under section create web service client in article , under client app 8 files generated shown in image(2) below.

now when write hellowebservice service = new hellowebservice(); in client app, app crashes , following exception:
java.lang.noclassdeffounderror: com.mycompany.service.client.hellowebservice

but if try consume same web service in java app following, works:

hellowebservice service = new hellowebservice(); com.myservice.service.client.helloweb helloweb = service.gethellowebport(); string response = helloweb.saygreeting(input); 

am doing wrong?

any appreciated.


screenshot

edit (1)

although i'm using similar command both apps generate required web services java files, structure different both apps. in android app, files getting generated under xml directory.

command : wsimport -keep -s c:\android\workspace\webservicedemo\src -p com.mycompany.service.client http://localhost:9898/helloweb?wsdl

screenshot

edit (2)

hellowebservice.java

package com.mycompany.service.client;  import java.net.malformedurlexception; import java.net.url; import java.util.logging.logger;  import javax.xml.namespace.qname; import javax.xml.ws.service; import javax.xml.ws.webendpoint; import javax.xml.ws.webserviceclient; import javax.xml.ws.webservicefeature;   /**  * class generated jax-ws ri.  * jax-ws ri 2.1.6 in jdk 6  * generated source version: 2.1  *   */ @webserviceclient(name = "hellowebservice", targetnamespace = "http://service.mycompany.com/", wsdllocation = "http://localhost:9898/helloweb?wsdl") public class hellowebservice     extends service {      private final static url hellowebservice_wsdl_location;     private final static logger logger = logger.getlogger(com.mycompany.service.client.hellowebservice.class.getname());      static {         url url = null;         try {             url baseurl;             baseurl = com.mycompany.service.client.hellowebservice.class.getresource(".");             url = new url(baseurl, "http://localhost:9898/helloweb?wsdl");         } catch (malformedurlexception e) {             logger.warning("failed create url wsdl location: 'http://localhost:9898/helloweb?wsdl', retrying local file");             logger.warning(e.getmessage());         }         hellowebservice_wsdl_location = url;     }      public hellowebservice(url wsdllocation, qname servicename) {         super(wsdllocation, servicename);     }      public hellowebservice() {         super(hellowebservice_wsdl_location, new qname("http://service.mycompany.com/", "hellowebservice"));     }      /**      *       * @return      *     returns helloweb      */     @webendpoint(name = "hellowebport")     public helloweb gethellowebport() {         return super.getport(new qname("http://service.mycompany.com/", "hellowebport"), helloweb.class);     }      /**      *       * @param features      *     list of {@link javax.xml.ws.webservicefeature} configure on proxy.  supported features not in <code>features</code> parameter have default values.      * @return      *     returns helloweb      */     @webendpoint(name = "hellowebport")     public helloweb gethellowebport(webservicefeature... features) {         return super.getport(new qname("http://service.mycompany.com/", "hellowebport"), helloweb.class, features);     }  } 

androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.webservicedemo"     android:versioncode="1"     android:versionname="1.0" >      <uses-sdk         android:minsdkversion="8"         android:targetsdkversion="17" />      <uses-permission android:name="android.permission.internet" />      <application         android:allowbackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/apptheme" >         <activity             android:name="com.example.webservicedemo.mainactivity"             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> 

finally gave approach after learning javax.* packages not supported in android.

i used similar this:

class requesttask extends asynctask<string, string, string> {      @override     protected string doinbackground(string... uri) {         httpclient httpclient = getnewhttpclient();         httpresponse response;         string add = "{\"memberno\":\"" + uri[0] + "\"}";         httppost postmethod = new httppost(wsdl);// + add         string responsestring = null;         try {             postmethod.addheader("content-type", "application/json");             httpentity entity = new stringentity(add);             postmethod.setentity(entity);             response = httpclient.execute(postmethod);              statusline statusline = response.getstatusline();             if (statusline.getstatuscode() == httpstatus.sc_ok) {                 bytearrayoutputstream out = new bytearrayoutputstream();                 response.getentity().writeto(out);                 out.close();                 responsestring = out.tostring();             } else {                 response.getentity().getcontent().close();                 throw new ioexception(statusline.getreasonphrase());             }         } catch (clientprotocolexception e) {             e.printstacktrace();         } catch (ioexception e) {             e.printstacktrace();         } catch (exception e) {             e.printstacktrace();         }         return responsestring;     }   } 

thanks time , response !


Comments