SOAPFAULT:SOAP-ERROR:编码:对象没有' SearchExpression'属性

时间:2014-06-12 00:21:12

标签: php exchange-server exchangewebservices php-ews

这对我来说真是令人困惑。两天前,我让你的php-ews完全使用我的所有EWS文件使用限制:

$start = new DateTime('2014-06-05');

$Request->Restriction = new EWSType_RestrictionType();
$Request->Restriction->And = new EWSType_AndType();

$Request->Restriction->And->IsGreaterThan = new EWSType_IsGreaterThanType();
$Request->Restriction->And->IsGreaterThan->FieldURI = new stdClass;
$Request->Restriction->And->IsGreaterThan->FieldURI->FieldURI = 'item:DateTimeSent';
$Request->Restriction->And->IsGreaterThan->FieldURIOrConstant->Constant->Value = $start->format('c');

现在,每当我尝试运行此脚本时,我都会在标题中看到错误消息。我已经检查过,我的文件确实包含对SearchExpression和SearchExpressionType的引用。

如果有必要,我会非常乐意发布我的wsdl和xsd文件。有什么想法可以产生这个错误吗?

P.S。我正在使用2013年的服装,我可以收到很好的电子邮件,只是没有限制。

2 个答案:

答案 0 :(得分:1)

尝试使用以下文件替换 messages.xsd,types.xsd services.wsdl

我发现文件types.xsd已被修改,它与您可以在 yopurexchangeserver / ews / services.wsdl上下载的原始文件不同

php soapclient可能存在问题。它与替换组和抽象元素无法正常工作。因此,他们稍微更改了 types.xsd 并解决了问题。

如果您想使用Exchange 2013中的新wsdl文件,则需要以类似的方式对其进行修改。

请勿忘记在此更改后关闭php中的wsdl缓存:

ini_set("soap.wsdl_cache_enabled", 0);

答案 1 :(得分:0)

我有同样的问题...... 我发现2010年和2013年之间在services.wsdl中存在差异所以请求需要不同。但我还没找到解决方案。

2010:

<!-- The type of object which actually encodes a restriction -->
  <xs:complexType name="RestrictionType">
    <xs:choice maxOccurs ="unbounded">
      <xs:element ref="t:Contains"/>
      <xs:element ref="t:Excludes"/>
      <xs:element ref="t:Exists"/>
      <xs:element ref="t:IsEqualTo"/>
      <xs:element ref="t:IsNotEqualTo"/>
      <xs:element ref="t:IsGreaterThan"/>
      <xs:element ref="t:IsGreaterThanOrEqualTo"/>
      <xs:element ref="t:IsLessThan"/>
      <xs:element ref="t:IsLessThanOrEqualTo"/>
      <xs:element ref="t:And"/>
      <xs:element ref="t:Not"/>
      <xs:element ref="t:Or"/>
    </xs:choice>
  </xs:complexType>

2013:

 <!-- The type of object which actually encodes a restriction -->
  <xs:complexType name="RestrictionType">
    <xs:sequence>
      <xs:element ref="t:SearchExpression"/>
    </xs:sequence>
  </xs:complexType>