gpt4 book ai didi

java - 在 JAX-WS Web 服务中使用 @WebParam(partName) 注释不起作用

转载 作者:行者123 更新时间:2023-11-30 07:03:27 26 4
gpt4 key购买 nike

这是我生成 wsdl 的 java 代码:

@WebMethod(action = "sendRequest")
@WebResult(partName= "message")
public String addRequest(@WebParam(partName = "firstName") String firstName,
@WebParam(partName = "lastName") String lastName, @WebParam(partName = "jmbg") long jmbg,
@WebParam(partName = "dateTime") Date dateTime) {
try {
appointmentManager.getAppointmentRequest().add(new AppointmentRequest(firstName, lastName, jmbg, dateTime));
return "Central office is closed due to the reconstruction. It will reopen on Monday.";
} catch (Exception e) {
return "Wrong format";
}
}`

这是我生成的 wsdl 中生成的复杂类型:`

<xs:complexType name="addRequest">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string"/>
<xs:element minOccurs="0" name="arg1" type="xs:string"/>
<xs:element name="arg2" type="xs:long"/>
<xs:element minOccurs="0" name="arg3" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>`
正如你所看到的。输入参数称为 arg0、arg1、arg2、arg3,而不是我在注释中指定的名称。

最佳答案

请使用@WebParam的属性name。例如,在您的情况下,您的方法签名可能如下所示:

public String addRequest(@WebParam(name = "firstName") String firstName,
@WebParam(name = "lastName") String lastName, @WebParam(name = "jmbg") long jmbg,
@WebParam(name = "dateTime") Date dateTime)

当您的Web服务操作是RPC风格或Document风格且参数风格为BARE时,请仅使用partName。对于 WRAPPED 的默认参数样式,不应使用此 partName 属性(转换为 wsdl:part 名称)。默认情况下,如果未指定partName,则默认值为@WebParam.name

建议:最好仅使用包含所有属性的 POJO,除非 wsdl 已共享,从而最大限度地减少方法的参数数量,从而增强强文本干净的代码,并且“XML 编码和解码”会更快。

关于java - 在 JAX-WS Web 服务中使用 @WebParam(partName) 注释不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40507027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com