title: Android - Apache commons libraries & Exchange Web Service Managed API
body: <p>I am already trying the exchange web service in Java. It's running good. It has send email or get emails correctly.</p>
  
  <p>My java code looks like this :</p>
  
  <pre><code>public static void main(String[] args) {
      try {
          Locale.setDefault(Locale.ENGLISH);
          ExchangeService service = new ExchangeService();
          WebCredentials webCredentials = new WebCredentials("asdasd@asasd.onmicrosoft.com", "asdasdasd");
          URI url = new URI("https://asdasd802.outlook.com/ews/Exchange.asmx");
          service.setCredentials(webCredentials);
          service.setUrl(url);
  
          System.out.println(service.getRequestedServerVersion());
  
          msg.setSubject("Hello world!"); 
          msg.setBody(MessageBody.getMessageBodyFromText("Sent using the EWS Managed API."));
          msg.getToRecipients().add("asdasd@gmail.com");
          msg.send();
  
      } catch (Exception ex) {
          ex.printStackTrace();
          //System.out.println(ex.toString());
      }
  
  }
  </code></pre>
  
  <p>When I try this in android with this code:</p>
  
  <pre><code>public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main_layout);
      Button b = (Button) findViewById(R.id.button1);
      b.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
  
              Locale.setDefault(Locale.ENGLISH);
              try {
                  ExchangeService service = new ExchangeService();
                  WebCredentials webCredentials = new WebCredentials(
                          "asdasd@asdasd.onmicrosoft.com",
                          "asdasd");
                  URI url = new URI("https://asdasd.outlook.com/ews/Exchange.asmx");
                  service.setCredentials(webCredentials);
                  service.setUrl(url);
  
                  EmailMessage msg= new EmailMessage(service);
                  msg.setSubject("Hello world!");
                  msg.setBody(MessageBody.getMessageBodyFromText
                             ("Sent using the EWS Managed API."));
                  msg.getToRecipients().add("asdasd@gmail.com");
                  msg.send();
  
              } catch (Exception ex) {
                  //ex.printStackTrace();
                  System.out.println(ex.toString());
              }
          }
      });
  }
  </code></pre>
  
  <p>I get some errors, when clicking on button.</p>
  
  <p>This is the messages from the console :</p>
  
  <pre>
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.httpclient.HttpMethodBase$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.impl.LogFactoryImpl$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.impl.LogFactoryImpl$2) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.impl.LogFactoryImpl$3) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.impl.SimpleLog$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.impl.WeakHashtable$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$1) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$2) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$3) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$4) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$5) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  [2011-12-15 17:06:25 - MobileApplication1] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
  (org.apache.commons.logging.LogFactory$6) that doesn't come with an
  associated EnclosingMethod attribute. This class was probably produced by a
  compiler that did not target the modern .class file format. The recommended
  solution is to recompile the class from source, using an up-to-date compiler
  and without specifying any "-target" type options. The consequence of ignoring
  this warning is that reflective operations on this class will incorrectly
  indicate that it is *not* an inner class.
  Toggle HighlightingOpen in New WindowSelect All
  </pre>
  
  <p>This is the errors from log chat:</p>
  
  <pre>
  09-21 09:10:17.039: E/AndroidRuntime(4126): FATAL EXCEPTION: main
  09-21 09:10:17.039: E/AndroidRuntime(4126): java.lang.VerifyError: microsoft.exchange.webservices.data.EwsServiceXmlWriter
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.ServiceRequestBase.emit(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.ExchangeService.createItem(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.Item.internalCreate(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.EmailMessage.internalSend(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at microsoft.exchange.webservices.data.EmailMessage.send(Unknown Source)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at com.MobileApplication1.android.MainScreenActivity$1.onClick(MainScreenActivity.java:60)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.view.View.performClick(View.java:2485)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.view.View$PerformClick.run(View.java:9080)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.os.Handler.handleCallback(Handler.java:587)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.os.Handler.dispatchMessage(Handler.java:92)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.os.Looper.loop(Looper.java:123)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at android.app.ActivityThread.main(ActivityThread.java:3687)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at java.lang.reflect.Method.invokeNative(Native Method)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at java.lang.reflect.Method.invoke(Method.java:507)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
  09-21 09:10:17.039: E/AndroidRuntime(4126):     at dalvik.system.NativeStart.main(Native Method)
  Toggle HighlightingOpen in New WindowSelect All
  </pre>
  
  <p>I already add these libraries.</p>
  
  <p>The Exchange Web Services (EWS) Java Managed API consists of a single package, microsoft.exchange.webservices.data and requires the following 3rd party libraries </p>
  
  <ul>
  <li>Apache Commons HttpClient (commons-httpclien.jar)</li>
  <li>Apache Commons Codec (commons-codec.jar)</li>
  <li>Apache Commons Logging (commons-codec.jar)</li>
  <li>JCIFS (jcifs.jar)</li>
  <li>EWS Java api.</li>
  </ul>
  
  <p>What is the problem?</p>
  
  <p>I have done some research. 
  I see some where Android already have logging and httpclient in sdk libraries. </p>