【问题标题】:Error orchestrating web service deployed in azure with Apache ODE使用 Apache ODE 编排在 Azure 中部署的 Web 服务时出错
【发布时间】:2013-05-09 14:52:21
【问题描述】:

我正在尝试使用 Apache ODE 编排部署在 Windows Azure 中的 Web 服务。我正在使用 Eclipse 集成的 Web Service Explorer 测试这些服务。 Azure WS 工作正常,但是当我测试 Artifacts.wsdl 时,它会引发以下错误:

14:41:38,777 INFO  [DeploymentPoller] Deployment of artifact BPEL_process successful: [{http://artifacts}process-132]
14:41:49,474 WARN  [SimpleScheduler] Dispatching jobs with more than 5 minutes delay. Either the server was down for some time or the job load is greater than available capacity
14:41:57,594 WARN  [ExternalService] Fault response: faultType=(unkown)
<?xml version='1.0' encoding='utf-8'?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode><faultstring xml:lang="en-US">The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the &lt;serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.</faultstring></s:Fault></s:Body></s:Envelope>
14:41:57,620 ERROR [INVOKE] Failure during invoke: 
14:41:57,623 INFO  [BpelRuntimeContextImpl] ActivityRecovery: Registering activity 15, failure reason:  on channel 27

这里是文件:

process.bpel

Artifacts.wsdl

mod2.wsdl

mod2.xsd

编辑这是我在 Web 服务中添加 IncludeExceptionDetailInFaults 时得到的结果:

17:51:49,762 WARN  [ExternalService] Fault response: faultType=(unkown)
<?xml version='1.0' encoding='utf-8'?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode><faultstring xml:lang="en-US">Object reference not set to an instance of an object.</faultstring><detail><axis2ns1:ExceptionDetail xmlns:axis2ns1="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><axis2ns1:HelpLink i:nil="true" /><axis2ns1:InnerException i:nil="true" /><axis2ns1:Message>Object reference not set to an instance of an object.</axis2ns1:Message><axis2ns1:StackTrace>   at WCFServiceWebRole1.AzureImpl.mod2(String arg0)&#xd;
   at SyncInvokemod2(Object , Object[] , Object[] )&#xd;
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]&amp; outputs)&#xd;
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)&#xd;
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)&#xd;
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)&#xd;
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</axis2ns1:StackTrace><axis2ns1:Type>System.NullReferenceException</axis2ns1:Type></axis2ns1:ExceptionDetail></detail></s:Fault></s:Body></s:Envelope>
17:51:49,798 ERROR [INVOKE] Failure during invoke: 
17:51:49,801 INFO  [BpelRuntimeContextImpl] ActivityRecovery: Registering activity 15, failure reason:  on channel 27

仍然不知道这意味着什么。 Eclipse 在我的 bpel 文件中指出错误。 &lt;assign&gt; 下的&lt;copy&gt; 标签抛出:

The from-spec of "&lt;xs:simpleType "string"&gt;" is not compatible with to-spec of "&lt;xs:complexType&gt;" 但我忽略了它,因为遵循 xsd 架构对我来说没有意义,有时它甚至会消失。

编辑二:

正如@vanto 所述,&lt;assign&gt; 活动是错误的。我必须将我的 wsdl 命名空间的前缀添加到 CDATA 标记中:

<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
  <![CDATA[mod2:mod2Result]]>
</bpel:query>

仍然没有完全理解命名空间,但这似乎与我必须将 elementFormDefault="qualified" 添加到 Azure 服务的 wsdl 导入的 xsd 的事实有关。

【问题讨论】:

    标签: azure xsd wsdl bpel apache-ode


    【解决方案1】:

    该错误意味着 ODE 得到了一个肥皂错误作为响应。这表明调用的 Web 服务引发了异常。请检查您的 Web 服务的日志或打开 IncludeExceptionDetailInFaults 功能,以获取有关问题的详细信息。请注意,ODE 不会验证传出消息,因此如果您的 &lt;assign&gt; 活动未创建正确的请求,ODE 不会注意到但调用的服务可能会抱怨。

    【讨论】:

    • 感谢@vanto,我已将 IncludeExceptionDetailInFaults 添加到我的 WS 中,但仍然没有任何线索。请查看已编辑的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多