gpt4 book ai didi

java - 生成的Web服务未接收参数

转载 作者:行者123 更新时间:2023-11-30 04:54:00 25 4
gpt4 key购买 nike

我已经从 Netbeans 7.1 中的 WSDL 生成了我的 Web 服务。出于安全考虑,我无法展示它,但您可以放心地假设它没问题,它已经过生产测试。

我可以正常调用网络服务。如果我让函数返回然后转储它,它甚至会返回正确的值。但问题是,它从未从 SOAP 调用接收任何参数。这是我在 index.jsp 中调用它的方式:

try {
Soap.ServiceService service = new Soap.ServiceService();
javax.xml.namespace.QName portQName = new javax.xml.namespace.QName("http://external.example.com/", "ServicePort");
String req = "<getTimestampCount xmlns=\"http://external.example.com/\"><msisdn>656</msisdn></getTimestampCount>";
javax.xml.ws.Dispatch<javax.xml.transform.Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, javax.xml.transform.Source.class, javax.xml.ws.Service.Mode.PAYLOAD);


javax.xml.transform.Source result = sourceDispatch.invoke(new javax.xml.transform.stream.StreamSource(new java.io.StringReader(req)));

javax.xml.transform.TransformerFactory factory = javax.xml.transform.TransformerFactory.newInstance();
javax.xml.transform.Transformer transformer = factory.newTransformer();
java.io.StringWriter writer = new java.io.StringWriter();
javax.xml.transform.Result stringOut = new javax.xml.transform.stream.StreamResult(writer);
transformer.transform(result, stringOut);
writer.close();
out.print(writer.toString());

} catch (Exception ex) {
out.print(ex.getMessage());
}

这是返回结果的函数:

public long getTimestampCount(java.lang.String msisdn) throws ParameterException, UnknownException_Exception {
//TODO implement this method
System.out.println(msisdn);
throw new UnsupportedOperationException("Not implemented yet.");
}

打印总是产生null。我一生都无法弄清楚它为什么起作用,找到正确的函数,但不传递值。

<小时/>

另外,我用这段代码对其进行了测试,返回的值是正确的:

try {
Soap.ServiceService service = new Soap.ServiceService();
Soap.Service port = service.ServicePort();
// TODO initialize WS operation arguments here

java.lang.String msisdn = "5";

// TODO process result here
long result = port.getTimestampCount(msisdn);
out.println("Result = "+result);
} catch (Exception ex) {
out.println(ex.getMessage());
// TODO handle custom exceptions here
}

正如预期的那样,它返回值 5。如果我想自己生成 SOAP 响应,这会很好,但我更愿意接收响应,就像第一个函数那样 - 作为 SOAP。

我还应该发布其他内容以使这件事变得更容易吗?如果是这样,请说出来,我会尽力提供所需的一切。

最佳答案

我已经解决了这些网络服务的问题,但我仍然不知道这段代码出了什么问题。

我最终所做的是使用标准语法,就像最后一段代码一样。效果非常完美。

关于java - 生成的Web服务未接收参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157261/

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