Ошибка оркестровки веб-службы, развернутой в Azure с Apache ODE
Я пытаюсь организовать веб-службу, развернутую в Windows Azure, с помощью Apache ODE. Я тестирую сервисы с помощью 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 <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
Вот файлы:
РЕДАКТИРОВАТЬ Это то, что я получаю, когда я добавляю 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)
at SyncInvokemod2(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
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
До сих пор не знаю, что это значит. Затмение указывает на ошибку в моем файле bpel. <copy>
тег под <assign>
броски:
The from-spec of "<xs:simpleType "string">" is not compatible with to-spec of "<xs:complexType>"
но я проигнорировал это, потому что следуя схемам xsd, это не имеет смысла для меня, а иногда даже исчезает.
РЕДАКТИРОВАТЬ II:
Как упомянуто @vanto <assign>
активность была неправильной. Мне пришлось добавить префикс пространства имен моего wsdl в тег CDATA:
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[mod2:mod2Result]]>
</bpel:query>
Все еще не полностью понимаю пространства имен, но, кажется, это связано с тем, что я должен был добавить elementFormDefault="qualified"
к xsd, импортированному wsdl службы Azure.
1 ответ
Ошибка означает, что ODE получил ошибку мыла как ответ. Это указывает на то, что вызванный веб-сервис вызвал исключение. Пожалуйста, проверьте журналы вашего веб-сервиса или включите функцию IncludeExceptionDetailInFaults, чтобы получить подробную информацию о том, что пошло не так. Обратите внимание, что ODE не проверяет исходящие сообщения, поэтому, если ваш <assign>
действия не создают правильный запрос, ODE не заметит, но вызванная служба, скорее всего, будет жаловаться.