Hi All,

I tried to set endpoint reference from input variable.
In Invoke.bpel I declare variable:
<bpel:variable name="WebServiceUrl"  messageType="tns:EndpointMessage" />

EndpointMessage is a message in Invoke.wsdl
<message name="EndpointMessage" >
    <part name="payload" element="wsa:EndpointReference" />
</message>

and I set endpoint:

<bpel:assign>
<bpel:copy>
<bpel:from>$input.payload/tns:webServiceUrl</bpel:from>
<bpel:to variable="WebServiceUrl" part="payload"/>
</bpel:copy>
<bpel:copy>
<bpel:from variable="WebServiceUrl" part="payload"/>
<bpel:to partnerLink="TaskServiceClient"/>
</bpel:copy>
</bpel:assign>

It works in apache ode 1.2, but it not in 1.3.4.
When I start process I get error bellow.
Can somebody help me with this problem?

Thanks,

Rafal


13:21:39,121 ERROR [ExternalService] Error sending message to Axis2
for ODE mex {PartnerRoleMex#hqejbhcnphr5x5jl66do7b [PID
{http://www.mg.gov.pl}Invoke-15] calling
org.apache.ode.bpel.epr.WSAEndpoint@2db6ea.AddNewTask(...) Status
REQUEST}

java.lang.NullPointerException

at org.apache.ode.bpel.epr.WSAEndpoint.getUrl(

at org.apache.ode.axis2.SoapExternalService.invoke(

at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(

at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(

at org.apache.ode.bpel.runtime.INVOKE.run(

at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(

at org.apache.ode.jacob.vpu.JacobVPU.execute(

at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(

at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(

at org.apache.ode.bpel.engine.BpelProcess$1.invoke(

at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(

at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(

at org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(

at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(

at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(

at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(

at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(

at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(

at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(

at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(

at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

13:21:39,121 ERROR [INVOKE] Failure during invoke: Error sending
message to Axis2 for ODE mex {PartnerRoleMex#hqejbhcnphr5x5jl66do7b
[PID {http://www.mg.gov.pl}Invoke-15] calling
org.apache.ode.bpel.epr.WSAEndpoint@2db6ea.AddNewTask(...) Status
REQUEST}

13:21:39,121 INFO [BpelRuntimeContextImpl] ActivityRecovery:
Registering activity 11, failure reason: Error sending message to
Axis2 for ODE mex {PartnerRoleMex#hqejbhcnphr5x5jl66do7b [PID
{http://www.mg.gov.pl}Invoke-15] calling
org.apache.ode.bpel.epr.WSAEndpoint@2db6ea.AddNewTask(...) Status
REQUEST} on channel 21

WSAEndpoint.java:93)SoapExternalService.java:156)MessageExchangeContextImpl.java:52)BpelRuntimeContextImpl.java:865)INVOKE.java:100)JacobVPU.java:451)JacobVPU.java:139)BpelRuntimeContextImpl.java:960)PartnerLinkMyRoleImpl.java:208)BpelProcess.java:283)BpelProcess.java:238)BpelProcess.java:279)BpelProcess.java:426)BpelEngineImpl.java:460)BpelServerImpl.java:450)SimpleScheduler.java:518)SimpleScheduler.java:513)SimpleScheduler.java:284)SimpleScheduler.java:239)SimpleScheduler.java:512)SimpleScheduler.java:496)
<?xml version="1.0" encoding="UTF-8"?>
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"; 
		xmlns:main="http://zzz.com";
		xmlns:ns="http://xxx.com";>
  <process name="main:Invoke">
    <active>true</active>
    <provide partnerLink="client">
      <service name="main:Invoke" port="InvokePort"/>
    </provide>
    <invoke partnerLink="TaskServiceClient">
      <service name="ns:TaskService" port="CustomBinding_ITaskService"/>
    </invoke>
    <cleanup on="always" />
  </process>
</deploy>
<?xml version="1.0"?>
<definitions name="Invoke"
        targetNamespace="http://zzz.com";
        xmlns:tns="http://zzz.com";
        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
        xmlns:ns="http://xxx.com";
        xmlns:wsa="http://www.w3.org/2005/08/addressing";
        >
	<import location="TaskService.wsdl" namespace="http://xxx.com"/>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     TYPE DEFINITION - List of services participating in this BPEL process 
     The default output of the BPEL designer uses strings as input and 
     output to the BPEL Process. But you can define or import any XML 
     Schema type and us them as part of the message types.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <types>  
        <schema attributeFormDefault="unqualified" 
                elementFormDefault="qualified" 
                targetNamespace="http://zzz.com"; 
                xmlns="http://www.w3.org/2001/XMLSchema";
                >
                
            <element name="InvokeRequest">
                <complexType>
                    <sequence>
                        <element name="webServiceUrl" type="string" />
                        <element name="applicationId" type="string" />
                        <element name="operationFlag" type="int" />
                    </sequence>
                </complexType>
            </element>
                  
            <element name="InvokeResponse">
                <complexType>
                    <sequence>
                        <element name="result" type="int"/>
                    </sequence>
                </complexType>
            </element>
            
        </schema>
    </types>
  
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     MESSAGE TYPE DEFINITION - Definition of the message types used as 
     part of the port type defintions
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <message name="InvokeRequestMessage">
        <part name="payload" element="tns:InvokeRequest"/>
    </message>
    
    <message name="InvokeResponseMessage">
        <part name="payload" element="tns:InvokeResponse"/>
    </message>
    
    <message name="EndpointMessage" >
		<part name="payload" element="wsa:EndpointReference" />
	</message>


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PORT TYPE DEFINITION - A port type groups a set of operations into
     a logical service unit.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- portType implemented by the Invoke BPEL process -->
    <portType name="Invoke">
        <operation name="invokeService">
            <input message="tns:InvokeRequestMessage"/>
            <output message="tns:InvokeResponseMessage"/>
        </operation>
    </portType>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PARTNER LINK TYPE DEFINITION
         the Invoke partnerLinkType binds the provider and
         requester portType into an asynchronous conversation.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <plnk:partnerLinkType name="Invoke">
        <plnk:role name="InvokeProvider" portType="tns:Invoke"/>
    </plnk:partnerLinkType>   

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     BINDING DEFINITION - Defines the message format and protocol details
     for a web service.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <binding name="InvokeBinding" type="tns:Invoke">
        <soap:binding style="document"
    		transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="invokeService">
            <soap:operation
    			soapAction="http://zzz.com/invokeService"; />
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>

   
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     SERVICE DEFINITION - A service groups a set of port into
     a service unit.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <service name="Invoke">
        <port name="InvokePort" binding="tns:InvokeBinding">
    		<soap:address location="http://localhost:8080/ode/processes/Invoke"/>
        </port>
    </service>

</definitions>
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wsdl:definitions xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:tns="http://xxx.com"; xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"; xmlns:wsa10="http://www.w3.org/2005/08/addressing"; xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"; xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"; xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="TaskService" targetNamespace="http://xxx.com";>
  <wsdl:types>
    <xs:schema elementFormDefault="qualified" targetNamespace="http://xxx.com"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:tns="http://xxx.com";>
  <xsd:simpleType name="guid">
 <xsd:restriction base="xsd:string">
  <xsd:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" /> 
  </xsd:restriction>
  </xsd:simpleType>
  <xs:element name="AddNewTask">
  <xs:complexType>
  <xs:sequence>
  <xs:element minOccurs="0" name="applicationId" type="tns:guid" /> 
  <xs:element minOccurs="0" name="operationFlag" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="AddNewTaskResponse">
  <xs:complexType>
  <xs:sequence>
  <xs:element minOccurs="0" name="AddNewTaskResult" type="tns:guid" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="TryGetTaskResult">
  <xs:complexType>
  <xs:sequence>
  <xs:element minOccurs="0" name="taskId" type="tns:guid" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  <xs:element name="TryGetTaskResultResponse">
  <xs:complexType>
  <xs:sequence>
  <xs:element minOccurs="0" name="TryGetTaskResultResult" type="xs:int" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>
  </wsdl:types>
  <wsdl:message name="ITaskService_AddNewTask_InputMessage">
    <wsdl:part element="tns:AddNewTask" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="ITaskService_AddNewTask_OutputMessage">
    <wsdl:part element="tns:AddNewTaskResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="ITaskService_TryGetTaskResult_InputMessage">
    <wsdl:part element="tns:TryGetTaskResult" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="ITaskService_TryGetTaskResult_OutputMessage">
    <wsdl:part element="tns:TryGetTaskResultResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="ITaskService">
    <wsdl:operation name="AddNewTask">
      <wsdl:input message="tns:ITaskService_AddNewTask_InputMessage" wsaw:Action="http://xxx.com/ITaskService/AddNewTask"/>
      <wsdl:output message="tns:ITaskService_AddNewTask_OutputMessage" wsaw:Action="http://xxx.com/ITaskService/AddNewTaskResponse"/>
    </wsdl:operation>
    <wsdl:operation name="TryGetTaskResult">
      <wsdl:input message="tns:ITaskService_TryGetTaskResult_InputMessage" wsaw:Action="http://xxx.com/ITaskService/TryGetTaskResult"/>
      <wsdl:output message="tns:ITaskService_TryGetTaskResult_OutputMessage" wsaw:Action="http://xxx.com/ITaskService/TryGetTaskResultResponse"/>
    </wsdl:operation>
  </wsdl:portType>
      <plnk:partnerLinkType name="TaskServicePartnerLink">
        <plnk:role name="TaskServcieRole" portType="tns:ITaskService"/>
    </plnk:partnerLinkType>
  <wsdl:binding name="CustomBinding_ITaskService" type="tns:ITaskService">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="AddNewTask">
      <soap:operation soapAction="http://xxx.com/ITaskService/AddNewTask"; style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="TryGetTaskResult">
      <soap:operation soapAction="http://xxx.com/ITaskService/TryGetTaskResult"; style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TaskService">
    <wsdl:port binding="tns:CustomBinding_ITaskService" name="CustomBinding_ITaskService">
      <soap:address location="http://procent02/Ceidg.Services.Archivisation/TaskService.svc"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Reply via email to