Hi all! 

I managed to deploy my own BPEL process with my own webservices in
Servicemix and Apache Ode... after an amazing odissey.

I started using NetBeans and OpenESB, so I created the BPEL file with
NetBeans. And it worked ok. When I migrated to Ode I had to change a lot of
stuff (adding components, changing the schemas, the code, creating manually
SAs and SUs...) and now I'm closer to my final objective! Invoke my process
without errors!

The BPEL process can invoke the services but I'm getting trouble with the
reply. I receive a NullPointerException. I've marked the interesting areas
in the log and the code beneath in bold

Help me, Ode-User Kenobi; you're my only hope ;)

Here is my BPEL:


<?xml version="1.0" encoding="UTF-8"?>
<process 
    name="Autentifica" 
    targetNamespace="http://enterprise.netbeans.org/bpel/Autentifica";
    xmlns="http://schemas.xmlsoap.org/ws/2004/03/business-process/";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/";
    xmlns:wsdlNS="http://enterprise.netbeans.org/bpel/Autentifica";
xmlns:ns1="http://j2ee.netbeans.org/wsdl/Autentifica";
xmlns:ns2="http://webservices.intecna.es/";
    expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
    
    <import namespace="http://j2ee.netbeans.org/wsdl/Autentifica";
location="Autentifica.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://webservices.empresica.es/";
location="localhost_8080/GruposTrabajoWS/AuthenticationService.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>

    <partnerLinks>
        <partnerLink name="Autentifica"
partnerLinkType="ns1:AutentificaPartner" myRole="AutentificaPortTypeRole"/>
        <partnerLink name="AuthenticationService"
partnerLinkType="ns2:AuthenticationLinkType"
partnerRole="AuthenticationRole"/>
    </partnerLinks>

    <variables>
        <variable name="GetGruposTrabajoTicketOut1"
messageType="ns2:getGruposTrabajoTicketResponse"/>
        <variable name="GetGruposTrabajoTicketIn1"
messageType="ns2:getGruposTrabajoTicket"/>
        <variable name="GetLiferayJSESSIONIDOut1"
messageType="ns2:getLiferayJSESSIONIDResponse"/>
        <variable name="GetLiferayJSESSIONIDIn1"
messageType="ns2:getLiferayJSESSIONID"/>
        <variable name="GetTicketOut1" messageType="ns2:getTicketResponse"/>
        <variable name="GetTicketIn1" messageType="ns2:getTicket"/>
        <variable name="BadCredentials"
messageType="ns1:AutentificaOperationFault"/>
        <variable name="AutentificaOperationOut1"
messageType="ns1:AutentificaOperationResponse"/>
        <variable name="AutentificaOperationIn1"
messageType="ns1:AutentificaOperation"/>
    </variables>

    <sequence name="Sequence1">
        <receive name="Receive1" createInstance="yes"
partnerLink="Autentifica" operation="AutentificaOperation"
portType="ns1:AutentificaPortType" variable="AutentificaOperationIn1"/>
        <assign name="Autentificacion">

                <!-- initialize-->
                <copy>
                        <from>
                                <literal>
                                        <ns2:parameters>
                                                <ns2:username/>
                                                <ns2:password/>
                                        </ns2:parameters>
                                </literal>
                        </from>
                        <to>$GetTicketIn1.parameters</to>
                </copy> 

                <!-- initialize-->
                <copy>
                        <from>
                                <literal>
                                        <ns2:parameters>
                                                <ns2:arg0/>
                                        </ns2:parameters>
                                </literal>
                        </from>
                        <to>$GetLiferayJSESSIONIDIn1.parameters</to>
                </copy> 

                <!-- initialize-->
                <copy>
                        <from>
                                <literal>
                                        <ns2:parameters>
                                                <ns2:ticketId/>
                                        </ns2:parameters>
                                </literal>
                        </from>
                        <to>$GetGruposTrabajoTicketIn1.parameters</to>
                </copy> 

                <!-- initialize-->
                <copy>
                        <from>
                                <literal>
                                        <ns1:parameters>
                                                <ns1:ticket/>
                                                <ns1:cookieLiferay/>
                                        </ns1:parameters>
                                </literal>
                        </from>
                        <to>$AutentificaOperationOut1.parameters</to>
                </copy> 

                <!-- initialize-->
                <copy>
                        <from>
                                <literal>
                                        <ns1:parameters>
                                                <ns1:errorMsg/>
                                        </ns1:parameters>
                                </literal>
                        </from>
                        <to>$BadCredentials.parameters</to>
                </copy> 
        
            <copy>
                <!--<from variable="AutentificaOperationIn1"
part="user"/>-->
                <from>$AutentificaOperationIn1.parameters/user</from>
                <to>$GetTicketIn1.parameters/ns2:username</to>
            </copy>

            <copy>
                <!--<from variable="AutentificaOperationIn1"
part="pass"/>-->
                <from>$AutentificaOperationIn1.parameters/pass</from>
                <to>$GetTicketIn1.parameters/ns2:password</to>
            </copy>

        </assign>

        <scope name="Scope3">
            <faultHandlers>
                <catchAll>
                    <sequence name="Sequence4">
                        <assign name="Assign5">
                            <copy>
                                <from>
                                    <literal>Permiso denegado. Usuario y/o
contraseña no válidos</literal>
                                </from>
                                <!--<to part="errorMsg"
variable="BadCredentials"/>-->
                                
<to>$BadCredentials.parameters/ns1:errorMsg</to>                                
        
                            </copy>
                        </assign>
                        <throw name="Throw3"
faultName="ns1:AuthenticationFault" faultVariable="BadCredentials"/>
                    </sequence>
                </catchAll>
            </faultHandlers>
            <invoke name="InvokeCASAuthentication"
partnerLink="AuthenticationService" operation="getTicket"
portType="ns2:Authentication" inputVariable="GetTicketIn1"
outputVariable="GetTicketOut1"/>
        </scope>
        <assign name="Assign2">
            <copy>
                <from>$GetTicketOut1.parameters/ns2:out</from>
                <to>$GetLiferayJSESSIONIDIn1.parameters/ns2:arg0</to>
            </copy>
            <!--<copy>
                <from>$GetTicketOut1.parameters/ns2:out</from>
                <to>$GetGruposTrabajoTicketIn1.parameters/ns2:arg0</to>
            </copy>-->
            <copy>
                <from>$GetTicketOut1.parameters/ns2:out</from>
                <!--<to variable="AutentificaOperationOut1"
part="ticket"/>-->
                <to>$AutentificaOperationOut1.parameters/ns1:ticket</to>
            </copy>
            <copy>
                <from>$GetTicketOut1.parameters/ns2:out</from>
                <to>$GetGruposTrabajoTicketIn1.parameters/ns2:ticketId</to>
            </copy>
        </assign>
        <flow name="Flow1">
                <scope name="Scope1">
                    <faultHandlers>
                        <catchAll>
                            <sequence name="Sequence2">
                                <assign name="Assign3">
                                    <copy>
                                        <from>
                                            <literal>Se produjo una
excepción al autentificarse en Liferay</literal>
                                        </from>
                                        <!--<to part="errorMsg"
variable="BadCredentials"/>-->
                                        
<to>$BadCredentials.parameters/ns1:errorMsg</to>        
                                    </copy>
                                </assign>
                                <throw name="Throw1"
faultName="ns1:AuthenticationFault" faultVariable="BadCredentials"/>
                            </sequence>
                        </catchAll>
                    </faultHandlers>
                     <sequence name="Sequence5">
                          <invoke name="InvokeLiferayAuthentication"
partnerLink="AuthenticationService" operation="getLiferayJSESSIONID"
portType="ns2:Authentication" inputVariable="GetLiferayJSESSIONIDIn1"
outputVariable="GetLiferayJSESSIONIDOut1"/>
                          <assign name="Assign6">
                               <copy>
                                   
<from>$GetLiferayJSESSIONIDOut1.parameters/ns2:out</from>
                                    <!--<to
variable="AutentificaOperationOut1" part="cookieLiferay"/>-->
                                        
<to>$AutentificaOperationOut1.parameters/ns1:cookieLiferay</to>
                               </copy>
                          </assign>
                     </sequence>
                </scope>
                <scope name="Scope2">
                    <faultHandlers>
                        <catchAll>
                            <sequence name="Sequence3">
                                <assign name="Assign4">
                                    <copy>
                                        <from>
                                            <literal>Se produjo una
excepción al autentificarse en Grupos de Trabajo</literal>
                                        </from>
                                        <!--<to part="errorMsg"
variable="BadCredentials"/>-->
                                        
<to>$BadCredentials.parameters/ns1:errorMsg</to>        
                                    </copy>
                                </assign>
                                <throw name="Throw2"
faultName="ns1:AuthenticationFault" faultVariable="BadCredentials"/>
                            </sequence>
                        </catchAll>
                    </faultHandlers>
                    <invoke name="InvokeGruposTrabajoAuthentication"
partnerLink="AuthenticationService" operation="getGruposTrabajoTicket"
portType="ns2:Authentication" inputVariable="GetGruposTrabajoTicketIn1"
outputVariable="GetGruposTrabajoTicketOut1"/>
                </scope>
        </flow>
        <reply name="Reply1" partnerLink="Autentifica"
operation="AutentificaOperation" portType="ns1:AutentificaPortType"
variable="AutentificaOperationOut1"/>
    </sequence>
</process>




And here is the servicemix log:
STARTING LOG
19:09:40,206 | DEBUG | pool-1-thread-1 | ASSIGN                   |
apache.ode.bpel.runtime.ASSIGN  406 | ASSIGN Writing variable
'AutentificaOperationOut1' value '<?xml version="1.0" encoding="UTF-8"?>
<message><parameters><AutentificaOperationResponse
xmlns="http://j2ee.netbeans.org/wsdl/Autentifica";
xmlns:ns1="http://j2ee.netbeans.org/wsdl/Autentifica";>
                                               
<ticket>eintegra-2-rh9sjfvyQX3pmfnWoVhheIgHeJRJ7XygPW6</ticket>
                                                
<cookieLiferay>6962F9D4DB468B1A1C88C1E87EE046EC</cookieLiferay>
                                       
</AutentificaOperationResponse></parameters></message>'
19:09:40,338 | ERROR | pool-1-thread-1 | JacobVPU                 |
b.vpu.JacobVPU$JacobThreadImpl  463 | Method "run" in class
"org.apache.ode.bpel.runtime.REPLY" threw an unexpected exception.
java.lang.NullPointerException
        at com.ibm.wsdl.PartImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.MessageImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.InputImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.OperationImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuilder.append(StringBuilder.java:116)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:45)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:805)
        at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:310)
        at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:311)
        at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:386)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute(QuartzSchedulerImpl.java:348)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute(QuartzSchedulerImpl.java:364)
        at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute(JobImpl.java:32)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
19:09:40,339 | ERROR | pool-1-thread-1 | BpelEngineImpl           |
ode.bpel.engine.BpelEngineImpl  320 | Scheduled job failed;
[EMAIL PROTECTED]
java.lang.RuntimeException: java.lang.NullPointerException
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:805)
        at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:310)
        at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:311)
        at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:386)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute(QuartzSchedulerImpl.java:348)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute(QuartzSchedulerImpl.java:364)
        at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute(JobImpl.java:32)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
        at com.ibm.wsdl.PartImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.MessageImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.InputImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.OperationImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuilder.append(StringBuilder.java:116)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:45)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        ... 12 more
19:09:40,341 | INFO  | pool-1-thread-1 | JobRunShell              |
org.quartz.core.JobRunShell     208 | Job DEFAULT.hqejbhcnphr23e2stjn1b9
threw a JobExecutionException: 
org.quartz.JobExecutionException:
org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.RuntimeException: java.lang.NullPointerException [See nested
exception: org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.RuntimeException: java.lang.NullPointerException]
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute(QuartzSchedulerImpl.java:350)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute(QuartzSchedulerImpl.java:364)
        at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute(JobImpl.java:32)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
* Nested Exception (Underlying Cause) ---------------
org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
java.lang.RuntimeException: java.lang.NullPointerException
        at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:321)
        at
org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:386)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.doExecute(QuartzSchedulerImpl.java:348)
        at
org.apache.ode.bpel.scheduler.quartz.QuartzSchedulerImpl.execute(QuartzSchedulerImpl.java:364)
        at org.apache.ode.bpel.scheduler.quartz.JobImpl.execute(JobImpl.java:32)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
        at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
        at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:805)
        at
org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:310)
        at
org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:311)
        ... 8 more
Caused by: java.lang.NullPointerException
        at com.ibm.wsdl.PartImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.MessageImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.InputImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuffer.append(StringBuffer.java:220)
        at com.ibm.wsdl.OperationImpl.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2615)
        at java.lang.StringBuilder.append(StringBuilder.java:116)
        at org.apache.ode.bpel.runtime.REPLY.run(REPLY.java:45)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
        ... 12 more
19:09:40,342 | DEBUG | pool-1-thread-1 | JTAJobRunShell           |
cheduler.quartz.JTAJobRunShell  113 | Rollbacking transaction.
END LOG



-- 
View this message in context: 
http://www.nabble.com/The-Final-Step%21-%28Problem-with-the-Reply-of-a-BPEL%29-tf3366488.html#a9366236
Sent from the Apache Ode User mailing list archive at Nabble.com.

Reply via email to