java wsdl 参数必填设置
原来的wsdl
<xs:complexType name="SyncPartTraceProcess">
<xs:sequence>
<xs:element minOccurs="0" name="OrderMasterData" type="tns:partTraceWrap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="partTraceWrap">
<xs:complexContent>
<xs:extension base="tns:baseWrap">
<xs:sequence>
<xs:element minOccurs="0" name="data" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="baseWrap">
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:string"/>
</xs:sequence>
</xs:complexType>
修改要求
下面是调用方给的截图,参数是0…1,表示可空,业务方要求使用1…1
分析
从wsdl看来,关键是minOccurs="0"
表示0…1,只要把它去掉,或者修改成 `minOccurs="1"即可, 那怎么去修改呢?
1:首先根结点
<xs:element minOccurs="0" name="OrderMasterData" type="tns:partTraceWrap"/>
OrderMasterData
这个是根参数里面的。
2:其次是根结点下的元素。
<xs:element minOccurs="0" name="data" type="xs:string"/>
调整
1:根结代码调整。
import com.ly.mp.swcas.main.wrap.*;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlElement;
import java.text.ParseException;@WebService(name = "SwcasService")
public interface SwcasService {@WebMethod@WebResult(name = "WsResult", targetNamespace = "")WsResult SyncPartTraceProcess(@WebParam(name = "OrderMasterData") @XmlElement(required = true) PartTraceWrap data) throws ParseException;}
PS:在方法的参数上添加@XmlElement(required = true)
,表示这个参数是必填的。
2:叶结代码调整。叶结点实际上是上面PartTraceWrap 参数实体的一个属性。调整如下
package com.ly.mp.swcas.main.wrap;import javax.xml.bind.annotation.*;
import java.io.Serializable;@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class PartTraceWrap extends BaseWrap implements Serializable {private static final long serialVersionUID = -6763186241763563647L;@XmlElement(required = true)private String data="";public String getData() {return data;}public void setData(String data) {this.data = data;}
}
PS:在data字段添加上@XmlElement(required = true)
注解,在类PartTraceWrap上添加 @XmlRootElement
注解。
注意,两个注释都必在有,只添加字段注释,项目是启动不了的
。
3:修改完成,看一下重新生成的wsdl效果,已然生效。
<xs:complexType name="SyncPartTraceProcess">
<xs:sequence>
<xs:element name="OrderMasterData" type="tns:partTraceWrap"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="partTraceWrap">
<xs:complexContent>
<xs:extension base="tns:baseWrap">
<xs:sequence>
<xs:element name="data" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="baseWrap">
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:string"/>
</xs:sequence>
</xs:complexType>
总结
关键是 @XmlElement(required = true)
注解,把原代码关键部分抽出来。如下
@Retention(RUNTIME) @Target({FIELD, METHOD, PARAMETER})
public @interface XmlElement {String name() default "##default";boolean nillable() default false;/*** Customize the element declaration to be required.* <p>If required() is true, then Javabean property is mapped to* an XML schema element declaration with minOccurs="1".* maxOccurs is "1" for a single valued property and "unbounded"* for a multivalued property.* <p>If required() is false, then the Javabean property is mapped* to XML Schema element declaration with minOccurs="0".* maxOccurs is "1" for a single valued property and "unbounded"* for a multivalued property.*/boolean required() default false;String namespace() default "##default";String defaultValue() default "\u0000";Class type() default DEFAULT.class;static final class DEFAULT {}
}
1:从代码的注释可以看到,required 值对应 minOccurs值为: false : 0 ;true : 1。
2:本注解 使用了 @Retention(RUNTIME) @Target({FIELD, METHOD, PARAMETER})
注解,表示可以用于字段,方法,参数。
java wsdl 参数必填设置相关推荐
- japidocs怎么设置参数必填_JApiDocs 动态生成接口文档,并解析java 源码中的注释...
1.介绍 JApiDocs 是一个符合 Java 编程习惯的 Api 文档生成工具.最大程度地利用 Java 的语法特性,你只管用心设计好接口,添加必要的注释,JApiDocs 会帮你导出一份漂亮的 ...
- japidocs怎么设置参数必填_常用的3种拍摄模式,相机参数怎么设置?如何正确曝光?...
初入摄影不知道什么是曝光三要素,不知道参数到底该怎么调.今天我们就来学习一下怎么才能得到一张曝光正确的照片. 我们先来学习一下曝光三要素.为什么要学习曝光三要素?因为控制曝光的参数主要有光圈.快门.感 ...
- 功能更新 | 任务类型排序、任务描述必填、窄详情支持新建关联任务
1 任务类型支持排序 排序后,项目内任务列表的任务类型位置将随着调整. 如何设置:进入项目设置>任务类型,即可拖拽排序. 2 窄详情支持新建关联任务 3 任务描述支持必填设置 设置必填后,未填写 ...
- java 字段验证_Selenium-Gherkin-Java:验证必填字段上的文本
简短版:我有一个必填字段,显示"此字段是必需的"的元素可以包含多个消息.我正在努力设置我的BDD功能步骤.页面和步骤文件,以验证是否显示了正确的消息. 长版: 对Java/Sele ...
- SAP SD 销售凭证如何设置字段必填
在实际业务中,我们经常遇到需要设置某些字段是必输的.那么在SAP中创建销售订单时如何控制必填字段呢?请看操作手册 第一步:设置屏幕增强 T-CODE:shd0 上截图 1----输入需要控制的事物代码 ...
- java定义dll文件位置,生成网站时如何设置固定的dll文件名?-Java架构师必看
在用VS2005发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的; 如果要固定生成文网络 在用VS2005发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的; 如果要固定 ...
- java 启动参数 配置,java程序启动参数设置
有些时候我们需要在java程序启动时设置一些系统属性值,然后程序启动后可以获取这些系统属性值并进行一些逻辑处理.例如我们在使用Maven打包的时候如果想跳过test执行,可以使用如下命令: mvn c ...
- 如何设置dedecms自定义表单必填项?
用dedecms自定义表单可以制作一个简单的预约系统,有些相关信息需要设置为必填项,比如联系方式,没有留下真实的电话或其他信息,以后要怎么联系到你的客户.那我们要如何设置织梦cms自定义表单必填项呢? ...
- js文本框设置必填项_Jquery文本框小例(必填框)
//当光标离开文本框的时候如果文本框为空,则将文本框边框色设置为红色,如果不为空则为白色.提示:焦点进入控件的事件是focus或者mousedown,焦点离开控件的事件是blur. $(functio ...
最新文章
- 【转】关于Apache与Nginx的优势比较
- mysql 事务处理
- 超图预览osgb格式倾斜摄影文件
- Qt 2D绘图功能简单总结
- while循环练习:
- dsp 数据类型强制转换_JavaSE第二章总结—数据类型
- Java并发编程中volatile实现过程详细解析
- 详解html结构之间的各个关系,层级关系(以列表为例)
- 微信分享接口调用(自测通过可以用)
- Qt中的QString和QByteArray之间转换
- ChemDraw 15支持哪些输入格式
- h5微信f分享链接给对方获取对方手机号_怎么加回微信删除的人?偷偷恢复,亲测有效!...
- 蓝牙路由器系列产品:企业级Cassia E1000
- python拉格朗日插值法_Python 实现拉格朗日插值
- centos7安装有道词典
- ios java模拟器 2017_Visual Studio 2017(Xamarin)未显示iPhone模拟器列表
- 开仓平仓基本类型有哪些?股指开仓平仓指的是什么?
- mysql之从入门到删库跑路
- Java实现系统统一对外开放网关入口设计
- matlab由方波转换为梯形波,matlab怎样将方波转换为二进制数据