ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "binh nguyen" <linhtinh0...@gmail.com>
Subject Error of null value after having assigned
Date Tue, 18 Nov 2008 16:24:45 GMT
Hi everyone,
I have a trouble with the assign activity, when the value of a variable is
always NULL after having been assigned NOT NULL value.
Here I show the bpel and wsdl files:

bpel file: testBP.bpel

<?xml version="1.0" encoding="UTF-8"?>
<process
    name="testBP"
    targetNamespace="http://enterprise.netbeans.org/bpel/StringBP/testBP"
    xmlns:tns="http://enterprise.netbeans.org/bpel/StringBP/testBP"
    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:str="http://MyWS/"
    xmlns:ns0="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:ns1="http://j2ee.netbeans.org/wsdl/testBP">

    <import namespace="http://j2ee.netbeans.org/wsdl/testBP"
        location="testBP.wsdl"
        importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="
http://enterprise.netbeans.org/bpel/StringWSServiceWrapper"
        location="StringWSServiceWrapper.wsdl"
        importType="http://schemas.xmlsoap.org/wsdl/"/>
    <import namespace="http://MyWS/"
        location="StringWSService.wsdl"
        importType="http://schemas.xmlsoap.org/wsdl/"/>

    <partnerLinks>
        <partnerLink name="StringPL"
            xmlns:tns="
http://enterprise.netbeans.org/bpel/StringWSServiceWrapper"
            partnerLinkType="tns:StringWSLinkType"
partnerRole="StringWSRole"
            initializePartnerRole="yes"/>
        <partnerLink name="TestPartnerLink"
            xmlns:tns="http://j2ee.netbeans.org/wsdl/testBP"
            partnerLinkType="tns:testBPLT" myRole="testBPPortTypeRole"/>
    </partnerLinks>
    <variables>
        <variable name="TestOneWayOut"
messageType="str:testOneWayResponseMsg"/>
        <variable name="TestOneWayIn" messageType="str:testOneWayMsg"/>

        <variable name="TestStringOut"
messageType="str:testStringResponseMsg"/>
        <variable name="TestStringIn" messageType="str:testStringMsg"/>

        <variable name="TestBPOperationOut" xmlns:tns="
http://j2ee.netbeans.org/wsdl/testBP"
            messageType="tns:testBPOperationResponseMsg"/>
        <variable name="TestBPOperationIn" xmlns:tns="
http://j2ee.netbeans.org/wsdl/testBP"
            messageType="tns:testBPOperationRequestMsg"/>
    </variables>
    <sequence>
        <receive name="Receive1" createInstance="yes"
            partnerLink="TestPartnerLink"
            operation="testBPOperation"
            xmlns:tns="http://j2ee.netbeans.org/wsdl/testBP"
            portType="tns:testBPPortType"
            variable="TestBPOperationIn"/>
        <assign name="InitMainVars">

            <copy>
                <from>
                    <literal>
                        <tns:testBPOperationResponse xmlns:tns="
http://j2ee.netbeans.org/wsdl/testBP">
                            <tns:return/>
                        </tns:testBPOperationResponse>
                    </literal>
                </from>
                <to>$TestBPOperationOut.partOut</to>
            </copy>

        </assign>

        <assign name="InitTestOneWayVars">
            <copy>
                <from>
                    <literal>
                        <tns:testOneWay xmlns:tns="http://MyWS/">

                        </tns:testOneWay>
                    </literal>
                </from>
                <to>$TestOneWayIn.parameters</to>
            </copy>

            <copy>
                <from>
                    <literal>
                        <tns:testOneWayResponse xmlns:tns="http://MyWS/">
                            <tns:return>NoChange</tns:return>
                        </tns:testOneWayResponse>
                    </literal>
                </from>
                <to>$TestOneWayOut.parameters</to>
            </copy>

            <copy>
                <from variable="TestBPOperationIn" part="partIn"/>
                <to>$TestOneWayIn.parameters</to>
            </copy>
        </assign>

        <invoke name="InvokeTestOneWay" partnerLink="StringPL"
            operation="testOneWay"
            portType="str:StringWS"
            inputVariable="TestOneWayIn"
            outputVariable="TestOneWayOut"/>


        <assign name="InitTestStringVars">
            <copy>
                <from>
                    <literal>
                        <tns:testString xmlns:tns="http://MyWS/">
                            <tns:input></tns:input>
                        </tns:testString>
                    </literal>
                </from>
                <to>$TestStringIn.parameters</to>
            </copy>
            <copy>
                <from>
                    <literal>
                        <tns:testStringResponse xmlns:tns="http://MyWS/">
                            <tns:return></tns:return>>
                        </tns:testStringResponse>
                    </literal>
                </from>
                <to>$TestStringOut.parameters</to>
            </copy>

*<!-- Error from this assign, the variable TestStringIn is always NULL after
this asign -->*

            <copy>
                <!--<from part="partIn" variable="TestBPOperationIn"
query="/partIn/input"/>
                -->
                <from>$TestBPOperationIn.partIn/ns1:input</from>
                <to part="parameters" variable="TestStringIn" />
<!--
                <from>
                    <literal>
                        <tns:input xmlns:tns="http://MyWS/">

<![CDATA[$TestBPOperationIn.parameters/ns1:input]]>
                        </tns:input>
                    </literal>
                </from>
  -->

            </copy>

        </assign>

*<!-- TestStringIn is NULL in this INVOKE -->*

        <invoke name="InvokeTestString" partnerLink="StringPL"
            operation="testString"
            portType="str:StringWS"
            inputVariable="TestStringIn"
            outputVariable="TestStringOut"/>

        <assign name="Assign2">

            <copy>
                <from>concat($TestBPOperationIn.partIn/ns1:input, '-&gt;',
                    $TestOneWayOut.parameters, '-&gt;',
                    $TestStringOut.parameters, '-&gt;', ' OK!')
                </from>
                <to variable="TestBPOperationOut" part="partOut"></to>
            </copy>

        </assign>

        <reply name="Reply1" partnerLink="TestPartnerLink"
            operation="testBPOperation"
            xmlns:tns="http://j2ee.netbeans.org/wsdl/testBP"
            portType="tns:testBPPortType"
            variable="TestBPOperationOut"/>
    </sequence>
</process>
--------------------

wsdl file: testBP.wsdl

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="testBP"
    targetNamespace="http://j2ee.netbeans.org/wsdl/testBP"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://j2ee.netbeans.org/wsdl/testBP"
    xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



     TYPE DEFINITION - List of types participating in this BPEL process
     The BPEL Designer will generate default request and response types
     but you can define or import any XML Schema type and use them as part
     of the message types.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-->
    <types>
        <schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
                targetNamespace="http://j2ee.netbeans.org/wsdl/testBP"
                xmlns="http://www.w3.org/2001/XMLSchema">

            <element name="testBPOperationRequest">
                <complexType>
                    <sequence>
                        <element name="input" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>

            <element name="testBPOperationResponse">
                <complexType>
                    <sequence>
                        <element name="return" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>

        </schema>
    </types>

    <message name="testBPOperationRequestMsg">
        <part name="partIn" element="tns:testBPOperationRequest"/>
    </message>
    <message name="testBPOperationResponseMsg">
        <part name="partOut" element="tns:testBPOperationResponse"/>
    </message>

    <portType name="testBPPortType">
        <operation name="testBPOperation">
            <input name="input1" message="tns:testBPOperationRequestMsg"/>
            <output name="output1"
message="tns:testBPOperationResponseMsg"/>
        </operation>
    </portType>
    <binding name="testBPBinding" type="tns:testBPPortType">
        <soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>
        <operation name="testBPOperation">
            <soap:operation/>
            <input name="input1">
                <soap:body use="literal" />
            </input>
            <output name="output1">
                <soap:body use="literal" />
            </output>
        </operation>
    </binding>
    <service name="testBPService">
        <port name="testBPPort" binding="tns:testBPBinding">
            <soap:address location="
http://localhost:8080/ode/processes/testBP"/>
            <!--<soap:address location="
http://localhost:8080/active-bpel/services/testBP"/>-->
        </port>
    </service>
    <plnk:partnerLinkType name="testBPLT">

        <plnk:role name="testBPPortTypeRole" portType="tns:testBPPortType"/>
    </plnk:partnerLinkType>
</definitions>
------------
more wsdl file StringWSService.wsdl

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is
JAX-WS RI 2.1.4-b01-. -->
<definitions targetNamespace="http://MyWS/"
    name="StringWSService"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://MyWS/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
  <types>
    <xsd:schema>
      <xsd:import namespace="http://MyWS/"
schemaLocation="StringWSService_schema1.xsd"/>
    </xsd:schema>
  </types>
  <message name="testStringMsg">
    <part name="parameters" element="tns:testString"/>
  </message>
  <message name="testStringResponseMsg">
    <part name="parameters" element="tns:testStringResponse"/>
  </message>
  <message name="testOneWayMsg">
    <part name="parameters" element="tns:testOneWay"/>
  </message>
  <message name="testOneWayResponseMsg">
    <part name="parameters" element="tns:testOneWayResponse"/>
  </message>
  <portType name="StringWS">
    <operation name="testString">
      <input message="tns:testStringMsg"/>
      <output message="tns:testStringResponseMsg"/>
    </operation>
    <operation name="testOneWay">
      <input message="tns:testOneWayMsg"/>
      <output message="tns:testOneWayResponseMsg"/>
    </operation>
  </portType>
  <binding name="StringWSPortBinding" type="tns:StringWS">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
    <operation name="testString">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="testOneWay">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="StringWSService">
    <port name="StringWSPort" binding="tns:StringWSPortBinding">
      <soap:address location="http://localhost:8080/MyWS/StringWS"/>
    </port>
  </service>
</definitions>
--------------------

In the testBP.bpel file, the value of variable TestStringIn is always NULL
event after it has been assigned by Non NULL value.
I do not know how to assign it correctly?
Any advice is appreciated!
Binh.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message