Spring-ws 自动生成wsdl 修改请求默认Request后缀的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-ws 自动生成wsdl 修改请求默认Request后缀的问题相关的知识,希望对你有一定的参考价值。
参考技术A Spring关于webservice的框架可以实现配置化自动生成wsdl文件与基于注解的自动序列化和反序列化
出现的问题:
1、想利用自动生成正确的wsdl文件
满足条件:默认的请求与响应的结尾Request与Response
Spring一贯的约定大于配置,约定的soap请求报文需要以Request结尾,soap响应报文需要以Response结尾,这是在给的spring-ws中硬编码实现的
如果想生成自定义的soap报文格式需要重写覆盖spring-ws的默认配置 DefaultWsdl11Definition
同时重写SuffixBasedMessagesProvider与SuffixBasedPortTypesProvider,关于后缀的问题
配置类
@EnableWs
@Configuration
public class WebServiceConfig
@Bean(name ="Invoke")
public Wsdl11Definition defaultWsdl11Definition(XsdSchema srmSchema)
//未解决默认请求后缀为Request才能正确生成wsdl文件的问题,
// 重写WSDL生成的实现类,覆盖默认的DefaultWsdl11Definition
//总体在于xml关键标签元素的渲染判断
MyWsdl11Definition definition =new MyWsdl11Definition();
definition.setPortTypeName("InvokePort");
definition.setTargetNamespace(Constant.NAMESPACE_BOI);
definition.setLocationUri("/ws");
definition.setSchema(srmSchema);
definition.setRequestSuffix("");//后缀修改,可以为空,而不是默认的Request
return definition;
2. 访问spring-ws的wsdl,默认url.wsdl而不是习惯用的url?wsdl
当然需要修改也可以实现
从 wsdl 生成 html 表单
【中文标题】从 wsdl 生成 html 表单【英文标题】:Generate html form from wsdl 【发布时间】:2016-08-20 00:55:18 【问题描述】:我需要一种方法来生成 HTML 界面(表单),从 wsdl 开始,提交 Web 服务请求。请求提交是由服务器端代码进行的。用户填写表单并发布数据。
我正在寻找可以帮助我编写代码的库 (Java)。
我不是要创建 web 服务的 java 类,我必须为任何 wsdl url 生成表单字段。
【问题讨论】:
【参考方案1】:根据 MikeC 的说法,http://www.soapclient.com/soaptest.html 是一个从 WSDL 文档创建 HTML 表单的工具。不幸的是,它不是一个 Java 库,而且它也至少有一个限制:不支持多维数组。
但只要稍加努力,您就应该能够为您的特定用例编写自己的解析器/转换器。另请参阅 How to parse WSDL in Java? 以了解有关 JAVA 的 WSDL 解析器的更多信息。
也可以是 XSLT http://www.ibm.com/developerworks/library/ws-xsltwsdl/。
【讨论】:
你的意思是你想构建一个简单的soapUI之类的东西吗?即,用户加载 WSDL 并显示网页以将请求消息的各种元素作为输入。用户填写值并单击按钮以向服务提交请求,响应元素将显示在网页中。那是你想要建造的吗?有点像soapclient.com/soaptest.html以上是关于Spring-ws 自动生成wsdl 修改请求默认Request后缀的问题的主要内容,如果未能解决你的问题,请参考以下文章