On Mon, Nov 24, 2008 at 8:38 AM, Simon Laws <[EMAIL PROTECTED]>wrote:

> I'm creating a sample app that has a BPEL component [1].
>
> [DEBUG] - GeronimoLog.debug(66) | >>> Payload: <?xml version="1.0"
> encoding="UTF-8"?>
> <Authorize xmlns="http://www.example.org/CreditCardPayment/"; xmlns:ccp="
> http://www.example.org/CreditCardPayment/";>
>                         <ccp:CreditCard>
>                             <ccp:CreditCardType>Visa</ccp:CreditCardType>
>
> <ccp:CreditCardNumber>12345678</ccp:CreditCardNumber>
>                             <ccp:ExpMonth>2</ccp:ExpMonth>
>                             <ccp:ExpYear>2010</ccp:ExpYear>
>                             <ccp:CardOwner>
>                                 <ccp:Name>Fred</ccp:Name>
>                                 <ccp:Address>
>                                     <ccp:Street>1 The Road</ccp:Street>
>                                     <ccp:City>Winchester</ccp:City>
>                                     <ccp:State>Hampshire</ccp:State>
>                                     <ccp:ZipCode>AB1 2CD</ccp:ZipCode>
>                                     <ccp:HomePhone>12345678</ccp:HomePhone>
>                                 </ccp:Address>
>                             </ccp:CardOwner>
>                         </ccp:CreditCard>
>                         <ccp:Amount>100.0</ccp:Amount>
>                     </Authorize>
> [ERROR] - GeronimoLog.error(108) | Error sending message
> (mex={PartnerRoleMex#hqejbhcnphr3rx2u9wt9hq [PID {
> http://www.example.org/PaymentProcess}PaymentProcess-1<http://www.example.org/PaymentProcess%7DPaymentProcess-1>]
> calling null.authorize(...)}): Unable to register synchronizer.
> org.apache.ode.bpel.iapi.ContextException: Unable to register synchronizer.
>     at
> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(SimpleScheduler.java:206)
>     at
> org.apache.ode.scheduler.simple.SimpleScheduler.addTodoOnCommit(SimpleScheduler.java:364)
>     at
> org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(SimpleScheduler.java:232)
>     at
> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.continueAsync(PartnerRoleMessageExchangeImpl.java:126)
>     at
> org.apache.ode.bpel.engine.PartnerRoleMessageExchangeImpl.replyWithFailure(PartnerRoleMessageExchangeImpl.java:97)
>     at
> org.apache.tuscany.sca.implementation.bpel.ode.ODEExternalService$1$1.call(ODEExternalService.java:132)
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>     at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
>     at
> org.apache.ode.scheduler.simple.SimpleScheduler.registerSynchronizer(SimpleScheduler.java:194)
>     ... 10 more
>
> Anyone seen this before? It comes from [2]
>
>         try {
>             tx.registerSynchronization(new Synchronization() {
>
>                 public void afterCompletion(int status) {
>
>                     if (status == Status.STATUS_COMMITTED) {
>                         _todo.enqueue(job);
>                     }
>                 }
>
>                 public void beforeCompletion() {
>                 }
>
>             });
>
>         } catch (Exception e) {
>             String errmsg = "Unable to registrer synchronizer. ";
>             __log.error(errmsg, e);
>             throw new ContextException(errmsg, e);
>
>         }
>
> So would seem to be associated with the way the transaction context is set
> up in ODE. Anyone know how the component configuration could affect this? On
> the face of it my sample is very similar to the bpel-helloworld itests
> (which run fine) except that the target interfaces have more complicated
> types. Other than that I'm not doing anything particularly complicated
> although I have to say the number of files you have to set up to get this
> working does leave a large element of doubt that they are all correct.
>

Welcome to BPEL :) From your stacktrace, the most likely issue is that the
transaction manager doesn't return any transaction. It's hard to tell
exactly why but the common case is that you have a previous error that
caused an invalidation of the current context.

Matthieu


>
> Simon
>
> [1]
> http://svn.apache.org/repos/asf/tuscany/sandbox/travelsample/paymentprocess-contribution/
> [2]
> http://svn.apache.org/repos/asf/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
>
>

Reply via email to