प्रमाणित करने के लिए कैसे हम अपने जावा एप्लिकेशन पर दृष्टिकोण कैलेंडर का उपयोग करने के लिए ईडब्ल्यूएस जावा एपीआई का उपयोग कर रहे हैं। मुझे ईडब्ल्यूएस पर प्रमाणीकरण के मुद्दे हैं।ईडब्ल्यूएस जावा एपीआई
मैंने क्लाउड आउटलुक खाते पर एप्लिकेशन की कोशिश की जो रैकस्पेस द्वारा प्रदान की गई है और सबकुछ ठीक काम करता है इसलिए मुझे पता है कि प्रमाण पत्र सटीक हैं।
यहाँ कोड है:
import java.net.URI;
import java.net.URISyntaxException;
import microsoft.exchange.webservices.data.*;
public class TestClass {
public static void main(String[] args) {
TestClass obj = new TestClass();
obj.testMethod();
}
public void testMethod() {
ExchangeService service = new ExchangeService(
ExchangeVersion.Exchange2007_SP1);
ExchangeCredentials credentials = new WebCredentials("username",
"password");
service.setCredentials(credentials);
try {
service.setUrl(new URI("https://domain/EWS/Exchange.asmx"));
} catch (URISyntaxException e) {
e.printStackTrace();
}
EmailMessage msg;
try {
msg = new EmailMessage(service);
msg.setSubject("hello world");
msg.setBody(MessageBody
.getMessageBodyFromText("Sent using the EWS API"));
msg.getToRecipients().add("[email protected]");
msg.send();
} catch (Exception e) {
e.printStackTrace();
}
}
}
रैकस्पेस के लिए यूआरएल है: https://connect.emailsrvr.com/EWS/Exchange.asmx
जब मैं इस खाते के लिए उपयोगकर्ता नाम और पासवर्ड डाल दिया और यह काम करता है, मैं सांत्वना थूकना बाहर देखने के इस एक:
Apr 05, 2013 1:40:28 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: NTLM authentication scheme selected
हमारा क्लाइंट ExchangeVersion.Exchange2007_SP1 का उपयोग कर रहा है जबकि रैकस्पेस ExchangeVersion.Exchange2010 का उपयोग कर रहा है, लेकिन जब मैं हमारे क्लाइंट प्रदान किए गए प्रमाण-पत्र (उपयोगकर्ता नाम, पासवर्ड और यूआरएल) का उपयोग करता हूं, तो मुझे यह त्रुटि मिल रही है:
Apr 05, 2013 1:49:13 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: Basic authentication scheme selected
Apr 05, 2013 1:49:13 PM org.apache.commons.httpclient.HttpMethodDirector processAuthenticationResponse
SEVERE: Invalid challenge: Basic
org.apache.commons.httpclient.auth.MalformedChallengeException: Invalid challenge: Basic
at org.apache.commons.httpclient.auth.AuthChallengeParser.extractParams(AuthChallengeParser.java:98)
at org.apache.commons.httpclient.auth.RFC2617Scheme.processChallenge(RFC2617Scheme.java:94)
at org.apache.commons.httpclient.auth.BasicScheme.processChallenge(BasicScheme.java:112)
at org.apache.commons.httpclient.auth.AuthChallengeProcessor.processChallenge(AuthChallengeProcessor.java:162)
at org.apache.commons.httpclient.HttpMethodDirector.processWWWAuthChallenge(HttpMethodDirector.java:694)
at org.apache.commons.httpclient.HttpMethodDirector.processAuthenticationResponse(HttpMethodDirector.java:668)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:193)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at microsoft.exchange.webservices.data.HttpClientWebRequest.executeRequest(HttpClientWebRequest.java:358)
at microsoft.exchange.webservices.data.ServiceRequestBase.getEwsHttpWebResponse(ServiceRequestBase.java:930)
at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(ServiceRequestBase.java:825)
at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:46)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:144)
at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(ExchangeService.java:464)
at microsoft.exchange.webservices.data.ExchangeService.createItem(ExchangeService.java:535)
at microsoft.exchange.webservices.data.Item.internalCreate(Item.java:215)
at microsoft.exchange.webservices.data.EmailMessage.internalSend(EmailMessage.java:125)
at microsoft.exchange.webservices.data.EmailMessage.send(EmailMessage.java:253)
at com.aurora.trials.TestClass.testMethod(TestClass.java:43)
at com.aurora.trials.TestClass.main(TestClass.java:17)
microsoft.exchange.webservices.data.EWSHttpException: Connection not established
at microsoft.exchange.webservices.data.HttpClientWebRequest.throwIfConnIsNull(HttpClientWebRequest.java:394)
at microsoft.exchange.webservices.data.HttpClientWebRequest.getResponseHeaders(HttpClientWebRequest.java:280)
at microsoft.exchange.webservices.data.ExchangeServiceBase.processHttpResponseHeaders(ExchangeServiceBase.java:1045)
at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:58)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:144)
at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(ExchangeService.java:464)
at microsoft.exchange.webservices.data.ExchangeService.createItem(ExchangeService.java:535)
at microsoft.exchange.webservices.data.Item.internalCreate(Item.java:215)
at microsoft.exchange.webservices.data.EmailMessage.internalSend(EmailMessage.java:125)
at microsoft.exchange.webservices.data.EmailMessage.send(EmailMessage.java:253)
at com.aurora.trials.TestClass.testMethod(TestClass.java:43)
at com.aurora.trials.TestClass.main(TestClass.java:17)
मुझे इस मुद्दे के लिए कोई समाधान नहीं मिला। कृपया कोई भी जानकारी प्रदान करें जो आपको लगता है कि मैं ईडब्ल्यूएस के लिए प्रमाणित हो सकता हूं। इन अपवादों का कारण क्या है?
रॉक्स स्पेस ईडब्ल्यूएस प्रमाणीकरण के लिए एनटीएलएम का उपयोग कर रहा है, और क्लाइंट बेसिक का उपयोग कर रहा है क्योंकि इसे ग्रहण पर कंसोल आउटपुट से देखा जा सकता है। – leventend
और वे हमारे प्रमाणीकरण को बुनियादी से एनटीएलएम में बदलने के लिए तैयार नहीं हैं। – leventend
उन्होंने आखिरकार मूलभूत से एनटीएलएम प्रमाणीकरण को बदल दिया, और यह अब काम करता है। खैर, कम से कम मैं कैलेंडर में नियुक्तियों को खींच सकता हूं लेकिन मैं उन्हें नहीं बना सकता। हालांकि मैं क्लाउड अकाउंट पर अपॉइंटमेंट्स बना सकता हूं। मैं किसी को किसी तरह से समझूंगा। लेकिन कम से कम मैं सीख रहा था कि मुद्दा कोड नहीं था, यह सर्वर पक्ष प्रमाणीकरण मुद्दा था। – leventend