gpt4 book ai didi

SSJS xpages 中的 java 结构体数组

转载 作者:行者123 更新时间:2023-12-02 12:29:03 25 4
gpt4 key购买 nike

我必须通过 SSJS 调用 Web 服务的方法。该方法的输入参数之一是结构体数组。 Web服务消费者是用java实现的。我想知道如何在SSJS中声明和实例化java结构体数组。

该方法的签名是:

(短,短,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,短 、 java.lang.String 、 java.lang.String 、 ESTRUTURACHECKLIST[] )

我正在根据您的建议创建数组:

lst=new ArrayList();

var chk:xx.xxx.xxxx.xxxx.ESTRUTURACHECKLIST=new
xx.xxx.xxxx.xxxx.ESTRUTURACHECKLIST();
chk.setCONTEUDOCHECKLIST("XXXX");
chk.setDESCRICAOCHECKLIST("CÓDIGO USUÁRIO");
lst.add(chk);

var chk1:xx.xxx.xxxx.xxxx..ESTRUTURACHECKLIST=new
xx.xxx.xxxx.xxxx..ESTRUTURACHECKLIST();
chk1.setCONTEUDOCHECKLIST("TESTE");
chk1.setDESCRICAOCHECKLIST("NOME USUARIO");
lst.add(chk1);
var chk2:xx.xxx.xxxx.xxxx..ESTRUTURACHECKLIST=new
xx.xxx.xxxx.xxxx..ESTRUTURACHECKLIST();
chk2.setCONTEUDOCHECKLIST("TESTE NOTES");
chk2.setDESCRICAOCHECKLIST("NOME NOTES");
lst.add(chk2);
arr=lst.toArray();

当我按照建议创建结构数组时,java 方法给出错误并且无法识别最后一个数组。可以肯定的是,我通过删除数组更改了实例化 Web 服务客户端的类的签名,没有出现错误。我认为发生的情况是 java 类无法识别 SSJS 使用指定结构的数组传递的数组。

调用该方法的错误是:

执行 Javascript 操作表达式时出错脚本解释器错误,行 = 75,列 = 13:java 上的 Java 方法 'xxxxx(number, number, string, string, string, string,string, string,string, string,string, [Ljava.lang.Object;)'找不到类 xx.xxxx.xxxx.xxx

最佳答案

如果您需要给定对象的Java数组,您可以首先将它们放入类似List的结构中,例如ArrayList或Vector,然后检索Java通过调用 toArray 方法来数组。

这是一个 SSJS 代码片段,应该可以帮助您:

importPackage(java.util);
importPackage(br.com.mercantil.dmdws);

var lst,chk,arr;

lst=new ArrayList();

chk=new ESTRUTURACHECKLIST();
// ... do whatever you need to do to the object
lst.add(chk);

// ... repeat previous step if needed

arr=lst.toArray(); // this is the Java array
<小时/>

更新

如果您使用的方法无法处理对象数组,因为它要求数组属于某个类,您可以提供一个具有所需运行时类型的数组作为 toArray 方法的第一个参数。由于我不知道如何在 SSJS 中创建或转换这样的数组,因此我将向 br.com.mercantil.dmdws.ESTRUTURACHECKLIST 类添加一个“helper”方法,如下所示

public static ESTRUTURACHECKLIST[] getJavaArray(int n) {
return new ESTRUTURACHECKLIST[n];
}

并按以下方式创建上面示例中的数组:

arr=lst.toArray(ESTRUTURACHECKLIST.getJavaArray(lst.size()));

关于SSJS xpages 中的 java 结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45372367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com