gpt4 book ai didi

java - JAX-WS 返回空列表

转载 作者:行者123 更新时间:2023-11-30 09:53:57 28 4
gpt4 key购买 nike

我是网络服务新手。我遇到了一些问题。在服务器端,我使用的是 spring-ws。在客户端,我使用的是 jax-ws。使用 wsimport 工具,我根据我的 wsdl 生成了 java 类。

一切正常,但由于某些原因 jax-ws 无法正确解析数组和列表,所有列表都是空的

我绝对确定,该响应的格式正确,使用 soapui 对其进行了测试,我还使用日志记录拦截器来记录 outcomming 响应。

下面是回复的片段

响应看起来像

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<firstElementResponse>
<name>hello world text</name>
<name>hello world text</name>
<name>hello world text</name>
</firstElementResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

和wsdl的片段

<xs:complexType name="sayHelloResponseType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>

为了生成客户端代码,我使用 wsimport。

SayHelloResponseType resp = serv.sayHello(r);
List<String> name = resp.getName();
System.out.println(name.size());

谢谢。任何帮助将不胜感激。

最佳答案

似乎它只是一个无效的响应体,不计算 wsdl shema。 spring-ws 和 jax-ws 都不抛出异常。它只是将无效数据解析为空列表而没有任何警告。

org.springframework.ws.soap.server.endpoint.interceptor.PayloadValidatingInterceptor 拯救了我

可能我必须调整 jax-ws 的日志记录以避免下次发生

关于java - JAX-WS 返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3601113/

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