如何在 jax-ws 中以 holders 作为参数调用 web 服务
How to invoke a webservice with holders as parameters in jax-ws
我是 jax-ws 开发的新手,我使用 wsimport 从 wsdl 生成了 java 源文件。
我需要从这些源文件之一调用一个函数到我的 UI 程序中。
我需要调用的函数如下所示:
@WebMethod(operationName = "GetX")
@RequestWrapper(localName = "GetX", targetNamespace = "urn:Control", className = "jaxws.control.GetX")
@ResponseWrapper(localName = "GetXResponse", targetNamespace = "urn:Control", className = "jaxws.control.GetXResponse")
public void myHostGetX(
@WebParam(name = "isActive", targetNamespace = "", mode = WebParam.Mode.OUT)
Holder<Boolean> Active);
假设这个函数是 class 的一部分,叫做 Class A。
但是如果我尝试通过做类似的事情来调用它,
boolean foo;
ResponseFromWS response = myHostGetX(foo);
我收到类似
的错误
The method myHostGetX(Holder<Boolean>) in the type Class A is not applicable for the arguments (boolean)
如何称呼这个 Holder<Boolean>
?
您需要设置持有人的价值。
所以要么:
myHostGetX(new Holder(Boolean.TRUE)); //note plain boolean should work in the constructor.
或
myHostGetX(new Holder());
或
Holder holder = new Holder();
holder.value = Boolean.TRUE;
myHostGetX(holder)
其中任何一个都应该有效。
值得一提的是,由于这是一个 OUTPUT 参数,因此值的设置应该发生在该方法的实现中。
我是 jax-ws 开发的新手,我使用 wsimport 从 wsdl 生成了 java 源文件。 我需要从这些源文件之一调用一个函数到我的 UI 程序中。
我需要调用的函数如下所示:
@WebMethod(operationName = "GetX")
@RequestWrapper(localName = "GetX", targetNamespace = "urn:Control", className = "jaxws.control.GetX")
@ResponseWrapper(localName = "GetXResponse", targetNamespace = "urn:Control", className = "jaxws.control.GetXResponse")
public void myHostGetX(
@WebParam(name = "isActive", targetNamespace = "", mode = WebParam.Mode.OUT)
Holder<Boolean> Active);
假设这个函数是 class 的一部分,叫做 Class A。
但是如果我尝试通过做类似的事情来调用它,
boolean foo;
ResponseFromWS response = myHostGetX(foo);
我收到类似
的错误The method myHostGetX(Holder<Boolean>) in the type Class A is not applicable for the arguments (boolean)
如何称呼这个 Holder<Boolean>
?
您需要设置持有人的价值。 所以要么:
myHostGetX(new Holder(Boolean.TRUE)); //note plain boolean should work in the constructor.
或
myHostGetX(new Holder());
或
Holder holder = new Holder();
holder.value = Boolean.TRUE;
myHostGetX(holder)
其中任何一个都应该有效。 值得一提的是,由于这是一个 OUTPUT 参数,因此值的设置应该发生在该方法的实现中。