如何将新的SOAPUI项目设置到Office 365 Exchange(访问WSDL时遇到问题)

如何将新的SOAPUI项目设置到Office 365 Exchange(访问WSDL时遇到问题),soap,wsdl,soapui,exchangewebservices,office365,Soap,Wsdl,Soapui,Exchangewebservices,Office365,我正在尝试创建一个新项目,用于测试Office 365中的Exchange Web服务 尝试1) 对于我指定的初始WSDL SoapUI然后提示我进行outlook.office365.com:443的基本身份验证 如果输入用于登录到Office365的凭据,则此操作将失败 然后,登录屏幕返回,要求对outlook.office365.com:-1进行基本身份验证 尝试2) 然后我找到了这本详细的指南: 使用I可以提取https://pod51046.outlook.com/ews/exchan

我正在尝试创建一个新项目,用于测试Office 365中的Exchange Web服务

尝试1)

对于我指定的初始WSDL

SoapUI然后提示我进行outlook.office365.com:443的基本身份验证 如果输入用于登录到Office365的凭据,则此操作将失败

然后,登录屏幕返回,要求对
outlook.office365.com:-1进行基本身份验证

尝试2)

然后我找到了这本详细的指南: 使用I可以提取
https://pod51046.outlook.com/ews/exchange.asmx

所以我下一步尝试了,但SoapUI回应:

"There was something wrong with the WSDL you are trying to import"
Error loading [https://pod51046.outlook.com/ews/exchange.wsdl]: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected end of file after null
SoapUI日志显示:

Tue Oct 14 13:35:48 CEST 2014:DEBUG:Getting wsdl component from [https://pod51046.outlook.com/ews/exchange.wsdl]
Tue Oct 14 13:35:48 CEST 2014:INFO:pod51046.outlook.com:443 requires authentication with the realm 'null'
Tue Oct 14 13:36:14 CEST 2014:ERROR:Failed to load url [https://pod51046.outlook.com/ews/exchange.wsdl]
Tue Oct 14 13:36:14 CEST 2014:ERROR:An error occurred [com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException], see error log for details
HTTP日志显示:

Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "GET /ews/exchange.wsdl HTTP/1.1[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "Host: pod51046.outlook.com[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "Connection: Keep-Alive[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "Cookie: ClientId=LGJVIJZECEJQYUIHP0RW; X-BackEndCookie=jan@[snip].onmicrosoft.com=u56Lnp[snip]Fys0=; exchangecookie=0fe18[snip]ad43d[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "Cookie2: $Version=1[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:>> "[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "HTTP/1.1 401 Anonymous Request Disallowed[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "Server: Microsoft-IIS/8.0[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "request-id: fadbe60a-008b-4f16-859a-719aaa8794bc[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-WSSecurity-Enabled: True[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-WSSecurity-For: Logon[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-FederationTrustTokenIssuerUri: urn:federation:MicrosoftOnline[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-WSSecurity-SymmetricKey-Enabled: True[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-WSSecurity-X509Cert-Enabled: True[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-OAuth-Enabled: True[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-Powered-By: ASP.NET[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "X-FEServer: AM2PR02CA0041[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "WWW-Authenticate: Basic Realm=""[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "Date: Tue, 14 Oct 2014 11:35:55 GMT[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "Content-Length: 0[\r][\n]"
Tue Oct 14 13:35:48 CEST 2014:DEBUG:<< "[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "GET /ews/exchange.wsdl HTTP/1.1[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "Host: pod51046.outlook.com[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "Connection: Keep-Alive[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "Cookie: ClientId=LGJVIJZECEJQYUIHP0RW; X-BackEndCookie=jan@[snip].onmicrosoft.com=u56Lnp2ejJ[snip]vFys0=; exchangecookie=0fe1867420a243b5993d336bbbead43d[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "Cookie2: $Version=1[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "Authorization: Basic amFuQFR[snip]RCVg==[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:>> "[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "HTTP/1.1 404 Not Found[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "Cache-Control: private[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "Server: Microsoft-IIS/8.0[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "request-id: 0bdf26cb-0fe3-418e-816f-a07324900119[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-CalculatedBETarget: db3pr02mb203.eurprd02.prod.outlook.com[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-DiagInfo: DB3PR02MB203[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-BEServer: DB3PR02MB203[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-AspNet-Version: 4.0.30319[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "Set-Cookie: X-BackEndCookie=jan@[snip].onmicrosoft.com=u56Lnp2ejJqBy[snip]7FzMnFzc4=; expires=Thu, 13-Nov-2014 11:36:21 GMT; path=/ews; secure; HttpOnly[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-Powered-By: ASP.NET[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "X-FEServer: AM2PR02CA0041[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "Date: Tue, 14 Oct 2014 11:36:20 GMT[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "Content-Length: 0[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:DEBUG:<< "[\r][\n]"
Tue Oct 14 13:36:14 CEST 2014:ERROR:com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.makeInvalidDefinitionException(WsdlLoader.java:142)
at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:129)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:539)
at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:528)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:101)
at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:240)
at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:50)
at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:153)
at java.lang.Thread.run(Unknown Source)
尝试3)

如果我把
https://pod51046.outlook.com/ews/exchange.wsdl
进入IE地址栏,它会不断提示我登录IE。
此处的评论中提到了重复提示:,但在3次登录(每次告诉IE记住我的参考资料)后,返回的页面为空白:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>

我正在Win7/64环境中使用免费的SOAPUI5.0.0(最新版本)和Java7(然后是8)。 我还克隆了我的虚拟机,并按照中的建议尝试了SOAPUI Pro版本,但这没有帮助


您对如何实现此功能有何建议?

用于Office 365 EWS WSDL的正确URL是您尝试的第一个URL:。您应该使用此URL来获取WSDL。在浏览器中,当我输入电子邮件地址和密码时,我可以毫无问题地获取WSDL

我不熟悉SOAPUI,所以我不确定为什么这个URL+Basic auth不能与SOAPUI一起使用。如果您有任何问题或需要更多信息,请告诉我

[OP的补充说明]

谢谢文卡特,这就是解决办法。还有其他的复杂因素,为什么我一开始就没有做到这一点。我把它们写在答案里,因为太多的评论了

  • 我不小心输入了
    https://pod51046.outlook.com/ews/***交易所***.wsdl
    而不是
    https://pod51046.outlook.com/ews/***服务***.wsdl
    (Oleg的博客实际上提到了这一点,但我忽略了)。这立即在IE中给出了正确的结果。您建议输入通用
    https://outlook.office365.com/ews/services.wsdl
    同样有效。
    (我想,在读到某个地方的实际URL是一个
    pod…
    one之后,在解析它之后,我固执地一直在尝试它)。
    这就是尝试2和3失败的原因

  • 在设置测试项目时,SOAP UI向我询问2次3=6次登录凭据。我只是不够执着。
    这就是尝试1失败的原因


  • 它不断询问您的凭据的原因是为了获取原始.wsdl中提到的相关XSD和wsdl。所以只要继续打字,保持信心。