问题:BPEL 数组填充

发布于 2024-11-06 02:41:44 字数 1711 浏览 4 评论 0原文

我创建了一个 BPEL 流程,它执行一些业务逻辑(让我们从部门列表中获取数据)。在下一个活动中,我必须使用相同的获取列表。

然后我为部门列表创建了一个 xsd,并想在其中添加元素,这样我将把获取的列表放入数组中,然后我可以在下一个活动(Java 嵌入)中使用相同的数组。

在我的第一个 java Embed Activity 中,我使用了以下代码来填充数组。

for(int i=0; i<10;i++ )
{
setVariableData("部门","/ns1:部门/ns1:部门/ns1['i']:部门名称","值"); }

时我收到以下异常。

<May 9, 2011 6:47:11 PM SGT> <Error> <oracle.soa.bpel.engine> <BEA-000000> <<BPELXExecLet::setVariableData>
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.w3c.dom.Element
        at com.collaxa.cube.engine.ext.bpel.v1.nodes.BPELXExecLet.setVariableData(BPELXExecLet.java:750)

有人请告诉我为什么我会收到错误吗?以及是否有其他方法可以实现目标。

我正在使用 Jdeveloper11.1.1.3.0 和 SOA 11.1.1.3.0。

以下是我的部门 xsd。

<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://www.example.org"
            targetNamespace="http://www.example.org"
            elementFormDefault="qualified">

            <xsd:element name="department" type="DeptCollection">
            </xsd:element>
  <xsd:complexType name="DeptCollection">
    <xsd:sequence >
       <xsd:element name="Dept" type="Dept" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Dept">
    <xsd:sequence>
      <xsd:element name="DeptName" type="xsd:string" />
      <xsd:element name="HOD" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

I created a BPEL process which doing some business logic(lets have fetching data from Department list). and on next activity I have to use the same fetched list.

then I created one xsd for department list and want to add element in that, in this way I will put the fetched list in array and then I can use the same array in next activity(Java embed).

On my first java Embed Activity I have used following code for populating the array.

for(int i=0; i<10;i++ )
{
setVariableData("department","/ns1:department/ns1:Dept/ns1['i']:DeptName","value");
}

while execution I am getting following exception.

<May 9, 2011 6:47:11 PM SGT> <Error> <oracle.soa.bpel.engine> <BEA-000000> <<BPELXExecLet::setVariableData>
java.lang.ClassCastException: java.lang.Integer cannot be cast to org.w3c.dom.Element
        at com.collaxa.cube.engine.ext.bpel.v1.nodes.BPELXExecLet.setVariableData(BPELXExecLet.java:750)

Will any one please tell me why I am getting error. and is there any alternative way for achieving the goal.

I am using Jdeveloper11.1.1.3.0 and SOA 11.1.1.3.0.

following is my xsd for Department.

<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="http://www.example.org"
            targetNamespace="http://www.example.org"
            elementFormDefault="qualified">

            <xsd:element name="department" type="DeptCollection">
            </xsd:element>
  <xsd:complexType name="DeptCollection">
    <xsd:sequence >
       <xsd:element name="Dept" type="Dept" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Dept">
    <xsd:sequence>
      <xsd:element name="DeptName" type="xsd:string" />
      <xsd:element name="HOD" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剩余の解释 2024-11-13 02:41:44

我不相信 setVariableData("department","/ns1:department/ns1:Dept/ns1['i']:DeptName","value"); 中的 i 被扩展为您认为。您必须首先使用 i 的值将第二个参数构建为字符串,然后将其传递给 setVariableData。

I don't believe the i in setVariableData("department","/ns1:department/ns1:Dept/ns1['i']:DeptName","value"); is being expanded as you think. You would have to build up the second parameter as a string first using the value of i, then pass it to setVariableData.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文