JAX-WS 返回值<return>标签怎么修改
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:addAccountResponse xmlns:ns2="http://example.com/user"><return><successCode>0</successCode><successMsg>增加成功</successMsg></return></ns2:addAccountResponse></soap:Body>
</soap:Envelope>
在使用 JAX-WS(比如这个 SOAP WebService 的 addAccountResponse)时,如果返回类型是一个 Java 对象(比如你的 ResultResponse),那么 JAX-WS 会默认自动把它包裹在 <return> 标签中。如果想要修改这个Result,就要加一些额外的配置。
@WebResult
在接口方法上加上 在接口方法上加上 @WebResult(name = "result"),显式指定返回标签名
@WebService(targetNamespace = "http://example.com/user")
public interface User4AService {@WebMethod@WebResult(name = "result") // 显式设置返回标签名ResultResponse addAccount(@WebParam(name = "reqXml") String reqXml);
}
修改之后就会有变成Result了:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:addAccountResponse xmlns:ns2="http://example.com/user"><result><successCode>0</successCode><successMsg>增加成功</successMsg></result></ns2:addAccountResponse></soap:Body>
</soap:Envelope>
注意:
1,记得要在WebService这个接口上加。而不是在业务接口上加。
2,有的人可能误解了这个,会用这个注解来写,它只影响 JAXB 的根元素,而不是 WebService 的外层包装的。