我需要使用Java Embedded将结果数组写入一个变量,该变量在BPEL中是anytype和无界的

我需要使用Java Embedded将结果数组写入一个变量,该变量在BPEL中是anytype和无界的,java,arrays,soa,bpel,oracle-soa,Java,Arrays,Soa,Bpel,Oracle Soa,我需要调用在DB2中运行的存储过程。因为Oracle DB适配器不支持DB2,所以我使用Java嵌入来调用存储过程。在使用Java嵌入调用存储过程并获取结果集时,我没有遇到任何问题。当开始将结果集分配给输出变量时,问题就开始了。我使用下面截取的设置变量 rset=statement.executeQuery("SELECT name, number, salary from Employee"); rset = statement.getResultSet(); int j=1; if (rs

我需要调用在DB2中运行的存储过程。因为Oracle DB适配器不支持DB2,所以我使用Java嵌入来调用存储过程。在使用Java嵌入调用存储过程并获取结果集时,我没有遇到任何问题。当开始将结果集分配给输出变量时,问题就开始了。我使用下面截取的设置变量

rset=statement.executeQuery("SELECT name, number, salary from Employee");
rset = statement.getResultSet();
int j=1;
 if (rset != null)
{
while(rset.next())
{
    name=rset.getString("name");
    name=rset.getString("number");
    name=rset.getString("salary");
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:empname",name); 
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:empno",number);
    setVariableData("temp","payload","/ns1:code1["+j+"]/ns1:salary",salary); 
        j=j+1;
}
}

在上面提到的代码中,我希望显示所有empname,要分配给输出变量temp的所有员工的编号和工资详细信息。但我看到的输出仅为最后一个员工详细信息。未显示剩余的员工详细信息。如果我将变量j替换为1、2或3等,则只会得到该数组元素的详细信息,而其他详细信息未知。有人可以帮助吗在将整个结果集设置为输出变量时,我会遇到困难。

在设置为子元素之前,是否尝试创建/ns1:code1[+j+]元素

我在本期报告中指出:


您使用的是哪种BPEL解决方案?为什么不在BPEL之外使用jdbc jca适配器?我使用的是10.1.3.5 SOA版本。它要求只使用BPEL资源,因此没有jdbc jca适配器:好的,那么您使用的是Oracle SOA suite 10.1.3.5,您的输出类型BPEL变量是如何定义的?正常的输出变量,带有一个以code1作为根元素和员工名称的模式,数字和薪水作为子元素。code1 Rool元素是无界的。