我们正在使用 Apache CXF 代码优先方法来创建 Web 服务。我们有一个自定义的肥皂头来传递用户凭据。
我正在尝试使用 @webparam 注释在 SEI 中传递用户凭据。
这是 Service 类中的两个操作。
@Path("/item/{id}")
@GET
public Item getItem(@PathParam("id") String id,
@WebParam(name="userDetails", header=true, mode=Mode.IN) UserDetails details) throws NotFoundException;
@Path("/name/{id}")
@GET
public Item getItemByName(@PathParam("id") String id,
@WebParam(name="userDetails", header=true, mode=Mode.IN) UserDetails details) throws NotFoundException;
生成 wsdl 时发音会抛出错误,说
D:\workspace\myService\src\main\java\com\ws\api\ItemPublicationWebService.java:52: [xml] Web 方法定义了一个名为“userDetails”的消息部分,它与定义的 Web 消息部分的名称相同在 D:\workspace\myService\src\main\java\com\ws\api\ItemPublicationWebService.java:41。请使用注释来消除歧义。
我发现保持 webParam 名称唯一会生成 wsdl。但这不是预期的结果。
我在这里想念什么?