1

我正在尝试使用 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

以下是文件:

进程.bpel

工件.wsdl

mod2.wsdl

mod2.xsd

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

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 文件中指出错误。throws下的<copy>标签:<assign>

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

编辑二:

正如@vanto 所提到的,<assign>活动是错误的。我必须将我的 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 的事实有关。

4

1 回答 1

1

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

于 2013-05-10T09:03:07.883 回答