首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring消费SOAP的微序列化

使用Spring消费SOAP的微序列化
EN

Stack Overflow用户
提问于 2017-10-25 14:20:54
回答 3查看 3.9K关注 0票数 0

我需要创建一个首先使用SOAP的REST服务。做这件事最好的方法是什么?

我想使用Spring创建一个微服务,但对于那些有经验的人,我有几个问题:

  • 我应该考虑使用哪些其他体系结构或技术(使用spring引导)?
  • 这有标准的技术栈吗?
  • 有什么陷阱我应该知道吗?
EN

回答 3

Stack Overflow用户

发布于 2017-10-26 02:20:32

我应该考虑使用哪些其他体系结构或技术(使用spring引导)?

我的回答是,如果您只想简单地提供没有Spring的RESTful服务,那么我认为您可以参考Spring官方网站上的以下2篇教程来实现这一点: 构建RESTful Web服务 使用SOAP服务

有标准的技术栈吗?

目前,我建议您使用Spring作为您的首选。因为这些都是丰富的网络资源,它确实减少了开发的工作量。

,我应该注意到一些陷阱吗?

如果您最终选择了Spring,请熟悉它的组件,您可以从指南开始了解它是如何工作的。或者您可以将Spring与传统Spring框架混为一谈。

票数 0
EN

Stack Overflow用户

发布于 2017-10-26 11:48:12

在我们的项目中也有类似的情况,我们用spring组件完成了它。据我所知,您希望打开一个REST端点,它很可能接受json对象,并且您希望在该请求中发出一个soap服务请求,然后您希望返回一个包含来自soap响应的信息的响应。要发出soap请求,可以使用spring服务- WebServiceTemplate。它将把您的对象转换为xml,并为您提出soap请求。当然,您可以使用其他一些web服务框架,比如apache,这些框架可能最适合某些特殊情况,但我首先尝试使用Spring系列的框架,同时使用spring。您应该在webservicetemplate对象上设置超时值,如果外部系统不能正常工作,或者网络有问题,则不要等待太长时间。因为它直接影响您的系统性能。在这里,我建议您实现断路器模式,以使您的系统更加健壮。您应该始终将您的系统性能与您集成的其他系统隔离开来,在这个场景中,您可以通过执行上面所述的操作来做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2017-11-06 22:54:05

据我所知,您应该在Maven构建中使用Spring应用程序。为了向SOAP服务发送REST调用并返回一个JSON响应,您需要遵循以下所有步骤:

  1. Business :将JSON字段(如headers、query、body变量)映射到XML请求强制字段(使用pojo类或object)原因:因为SOAP端点将只接受XML请求。
  2. Service :导入"org.springframework.web.client.RestTemplate“并使用 **ResponseEntity responseEntity=RestTemplate.exchange(endPointURL,HttpMethod.GET/POST/PUT/DELETE,HttpEntity/headers,uriVariables)*endpointURL**- SOAP端点URL,REST服务必须使用。**HTTPMethod** --方法类型(如GET、PUT、POST、DELETE等)*HTTPEntity**- Soap要求强制发送方/标头/{a}.Make确保在header中将标题名称和值设置为key-Valye对。**uriVariable**-(反对.例如String.class,Integer.class,您还应该在生成对restTemplate的请求时放置**connectTimeout**、**isSSLDisabled**、**responseCached*元素。
  3. responseEntity.getBody()是非封送处理后的XML响应,可以使用mapper提取。 response=mapper.readValue(responseEntity.getBody(),XML_BaseResponse XML_BaseResponse.class);
  4. 业务逻辑:从XML_BaseResponse中提取必要的字段,并使用setter或getter的函数,在响应中设置强制字段。 baseResponse.setName(xml_baseResponse.getPersonsName());baseResponse.setAddress(xml_baseResponse.getAddress());baseResponse.setCity(xml_baseResponse.getcityName());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46934916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档