gpt4 book ai didi

java - 当我使用 Model 作为返回类型启动 "@Web method"时出错

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:47 25 4
gpt4 key购买 nike

我正在使用 Netbeans,并且按照 Getting Started with JAX-WS Web Services 中的说明进行操作。我目前正在研究一种方法,该方法将作为 WebMethod 公开,给定两个输入字符串,返回一个 Model (耶拿中定义的接口(interface))。这样,我想打印我的模型。

/**
*
* @author admin
*/
@WebService(serviceName = "Prova_WS")
@Stateless()
public class Prova_WS {
/**
* Web service operation
*/
@WebMethod(operationName = "operation")
public Model operation(@WebParam(name = "f") String f, @WebParam(name = "f1") String f1) {
//to be

return model;
}
}

鉴于作为 Model 类型的返回值给出可能没有什么意义,因此当我启动测试 WS 服务时,我收到错误。事实上,我在意大利语中收到此错误:

Errore durante la generazione degli artifact per il seguente WSDL http://localhost:8080/Prova_WS/Prova_WS?WSDL

La possibile causa può essere il richiamo di https quando lapplicazione non è configurata per la sicurezza

我注意到,例如,如果我更改返回类型为 int 的方法,我注意到我不会收到相同的错误。为什么?我错了什么?

最佳答案

请注意,Jena Model 不会出现在默认 Types Supported by JAX-WS 列表中您可能需要Use a custom class as return typeModel 不符合 Java Bean 规范,并且没有任何 JaxB 注释,因此您需要查明您的 Web 服务库是否允许您自行创建自定义序列化。

如果您可以使用 String 返回类型,则可以使用 Jena 的内部方法序列化模型,然后返回结果字符串:

final ByteArrayOutputStream out = new ByteArrayOutputStream();
model.write(out, "RDF/XML");
return new String(out.toByteArray());

在客户端,如果您想使用 Jena API 客户端,则需要小心将该字符串转换回 Jena Model

final ByteArrayInputStream in = new ByteArrayInputStream(result.getBytes());
model.read(in, null, "RDF/XML");

关于java - 当我使用 Model 作为返回类型启动 "@Web method"时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958040/

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