java - Spring WS 生成通知而不是请求响应

标签 java spring spring-ws

我一直在尝试使用 Spring WebService 在 Spring 中创建现有 JAX-WS Web 服务的端口(大致遵循其在 https://spring.io/guides/gs/producing-web-service/ 的指南)。

我已经有一个端点正在工作,它使用现有应用程序(使用 JAX-WS)使用的 XSD,并使用 SoapUI 生成一个新集。

出于某种原因,Web 服务似乎使用“通知”类型进行发布,而不是像预先存在的 JAX-WS 端点上的原始现有方法那样使用“请求-响应”类型。 Spring WS 还具有一个带有 Response 后缀类的“输出”,而 JAX-WS 则没有。这在 SoapUI 中在视觉上有所不同,Spring wsdl 在每个方法旁边都有一个红色的“左箭头”,而不是逆流箭头。

我认为这本身就是我在调用我设置的一个端点时遇到的一个问题 - 记录了一条错误,指出“没有找到 [SaajSoapMessage .... myEndpointMethodResponse<”的端点映射/em>”(例如来自端点方法的响应对象,而不是端点方法本身)。

如上所述,我觉得方法上的“类型”是确凿无疑的,但我看不出是什么原因造成的。我已经查找了该问题,但找不到任何共同点?

更新 以下内容有助于请求响应 ( Invalid wsdl generated by spring-ws when the request element doesn't end with 'Request' ),但我现在在 SOAPUI 中收到引用我的 Response 类的“没有端点适配器”的响应。 PayloadRoot 和 ResponsePayload 与 wsdl 对象完全匹配。

最佳答案

好的,因为这里唯一的“帮助”是一次接近投票(谢谢,非常有帮助),我现在已经自己解决了这个问题并将发布解决方案。有两个部分:

  1. 根据问题中的“更新”,XSD 中的请求方法以该方法命名,并且没有后缀“请求”。这意味着我必须创建一个自定义 WSDL11Definition 类来允许 setRequestSuffix为空(空)。问题链接有更多详细信息。

  2. 方法上的对象需要包装在 JAXBElement<> 中以便成功识别输入和输出。

完成上述所有操作后,我的断点在使用 SOAPUI 的 IDE 中被命中。

关于java - Spring WS 生成通知而不是请求响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60233731/

相关文章:

java - 将.gif图像转换为base64以上传到服务器

java - 带有动态 XSD 的 WSDL

java - 我如何让 spring-ws + tomcat 记录错误

xml - 强制 Spring Web 服务将 xsd 命名空间添加到响应中

java - 为什么将 Type[] 转换为 Class[] 会抛出 ClassCastException?

Java 流,从 ConcurrentLinkedQueue 中删除并执行操作

java - 多个可绘制背景图像以适应屏幕分辨率

Spring Boot - 类路径 list 属性

java - Spring JPA 存储库最近日期

spring boot feign客户端获取HTTP 404