Я уже пробую обменять веб-сервис на Java.Работает хорошо.Он отправил письмо или получил электронную почту правильно.
Мой код Java выглядит следующим образом:
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());
}
}
Когда я пытаюсь это в Android с этим кодом:
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());
}
}
});
}
Я получаю некоторые ошибки при нажатии на кнопку.
Это сообщения из консоли:
[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
Это ошибки из журнала чата:
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
Я уже добавляю эти библиотеки.
Управляемый API Java Web Exchange Services (EWS) состоит из одного пакета microsoft.exchange.webservices.data и требует следующих сторонних библиотек
- Apache Commons HttpClient (commons-httpclien.jar)
- Apache Commons Codec (commons-codec.jar)
- Apache Commons Logging (commons-codec.jar)
- JCIFS(jcifs.jar)
- EWS Java API.
В чем проблема?
Я провел некоторое исследование.Я вижу некоторые, где Android уже имеет логирование и httpclient в библиотеках SDK.