我想从动态客户端Web服务中获取参数类型,但我不能。我写了这段代码:
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf
.createClient("http://localhost:8081/Isle/wsdl/IslemTopCarpBolCik.wsdl");
Object[] res;
try {
res = client.invoke("toplama", 2, 3);
System.out.println("Echo response: " + res[0]);
Binding binding = client.getEndpoint().getBinding();
BindingInfo bindingInfo = binding.getBindingInfo();
//binding.getInInterceptors();
Collection<BindingOperationInfo> operations = bindingInfo
.getOperations();
for (BindingOperationInfo boi : operations) {
OperationInfo oi = boi.getOperationInfo();
BindingMessageInfo inputMessageInfo = boi.getInput();
List<MessagePartInfo> parts = inputMessageInfo
.getMessageParts();
System.out.println("function name: "
+ oi.getName().getLocalPart());
}
System.out.println("binding: " + binding);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如何获取参数类型? (p.s.我不想让参数解析。)
我想知道你知道有一个定义的函数来获取参数的类型吗?
答案 0 :(得分:0)
这段代码对我有用..
Binding binding = client.getEndpoint().getBinding();
BindingInfo bindingInfo = binding.getBindingInfo();
Collection<BindingOperationInfo> operations = bindingInfo
.getOperations();
for (BindingOperationInfo boi : operations) {
BindingMessageInfo inputMessageInfo = boi.getInput();
List<MessagePartInfo> parts = inputMessageInfo
.getMessageParts();
System.out.println("method name: "
+ parts.get(0).getConcreteName().getLocalPart());
for (Field param : parts.get(0).getTypeClass()
.getDeclaredFields()) {
System.out.println("param_name: " + param.getName()
+ " type:" + param.getType());
}
}