我在java中构建代码优先的Web服务并使用maven构建它。 Web服务本身工作正常,但我无法摆脱
的minOccurs =" 0"
在我生成的wsdl:
中<xs:complexType name="getHOP">
<xs:sequence>
<xs:element minOccurs="0" name="getHopRequest" type="getHopRequest"/>
</xs:sequence>
</xs:complexType>
<xs:element name="getHOPResponse" type="getHOPResponse"/>
<xs:complexType name="getHOPResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="getHopResponse"/>
</xs:sequence>
</xs:complexType>
我的界面看起来像这样
@WebService
public interface GetHop {
GetHopResponse getHOP(
@WebParam(name = "getHopRequest") GetHopRequest getHopRequest);
}
这是我的请求类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "getHopRequest", propOrder = { "companyId", "countryIsoCode",
"currencyIsoCode", "paymentMethodId", "customerId", "totalAmount",
"cartId", "successUrl", "failureUrl", "notifyUrl" })
public class GetHopRequest {
@XmlElement(required = true)
private String companyId;
@XmlElement(required = true)
private String countryIsoCode;
@XmlElement(required = true)
private String currencyIsoCode;
@XmlElement(required = true)
private String paymentMethodId;
@XmlElement(required = true)
private String customerId;
@XmlElement(required = true)
private String totalAmount;
@XmlElement(required = true)
private String cartId;
@XmlElement(required = true)
private String successUrl;
@XmlElement(required = true)
private String failureUrl;
@XmlElement(required = true)
private String notifyUrl;
// Getter and setter here
}
已经能够按照
的要求设置getHopRequest中的所有元素@XmlElement(required = true)
但我无法弄清楚如何为请求/响应本身做这件事。
谁能告诉我怎么做?
答案 0 :(得分:0)
尚未经过验证或测试。
您可以在Web方法的Web服务参数上添加@XmlElement
并设置required=true
,如下所示:
@WebService
public interface GetHop {
GetHopResponse getHOP(
@WebParam(name = "getHopRequest") @XmlElement(required=true) GetHopRequest getHopRequest);
}
答案 1 :(得分:0)
原始类型而非基本类型可能在编组对象中具有null
值。默认情况下,它们不是必需的,minOccurs="0"
表示它们可能根本不存在。
如果您需要删除minOccurs="0"
,则应使用:
@XmlElement(nillable=false, required=true)
之后生成的WSDL将不包含minOccurs
,因为minOccurs
具有默认值1
并且它被忽略。