java设置嵌套的实体类_java – JAX-WS:为什么嵌套元素在“”命名空间中?

玩具服务如下

@WebService(targetNamespace="http://www.example.org/stock")

@SOAPBinding(style=Style.RPC,parameterStyle=ParameterStyle.WRAPPED)

public class GetStockPrice {

@WebMethod(operationName="GetStockPrice",action="urn:GetStockPrice")

@WebResult(partName="Price")

public Double getPrice(

@WebParam(name="StockName")

String stock

) {

return null;

}

}

JAX-WS生成的客户端创建SOAP消息,其中StockName参数没有命名空间:

我希望并希望StockName生成为

即在目标名称空间中,而不是在匿名名称空间中(ns2不是默认的,据我所知,从消息中可以看出).

我想知道如何让JAX-WS将目标命名空间添加到消息的嵌套元素中?

尝试将名称空间指定给WebParam注释时没有任何改变,因为在使用RPC时会忽略此参数.

或者……这是否意味着RPC风格的参数始终是匿名的?

UPDATE

傻我.部分解决了.我必须做的是

> style = Document,为元素启用目标命名空间

> param style = Wrapped,以启用顶级元素

>为WebParam指定目标命名空间(为什么不使用服务?文档说应该使用服务命名空间)

那是:

@WebService(targetNamespace="http://www.example.org/stock")

@SOAPBinding(style=Style.DOCUMENT,action="urn:GetStockPrice")

@WebResult(partName="Price")

public Double getPrice(

@WebParam(name="StockName",targetNamespace="http://www.example.org/stock")

String stock

) {

return null;

}

}

尽管如此,客户端仍然希望返回值没有任何命名空间,即使我尝试声明提供一个.这令人困惑.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值