为什么Integer字段无法获取我发送的值。如果我在WebMethod中使用Integer参数(比如发送ID)就可以了。
String字段也可以获得我发送的值,没有任何问题。
以下是网络服务:
@WebService(serviceName = "testWS")
public class testWS {
@WebMethod(operationName = "Hello")
public Integer Hello(@WebParam(name = "testData") TEST testData) {
return testData.getINTPROP();
}
}
TEST类型定义:
@XmlAccessorType(XmlAccessType.FIELD)
public class TEST {
private Integer INTPROP;//making public also didn't work
public Integer getINTPROP() {
return INTPROP;
}
public void setINTPROP(Integer INTPROP) {
this.INTPROP = INTPROP;
}
private String STRINGPROP;
public String getSTRINGPROP() {
return STRINGPROP;
}
public void setSTRINGPROP(String STRINGPROP) {
this.STRINGPROP = STRINGPROP;
}
}
C#消费者应用程序:
...
test f = new test();
f.INTPROP = 123;
f.STRINGPROP = "abcdef";
var ff = ws.Hello(f);//returns 0
我希望我能解释我的问题。感谢。
答案 0 :(得分:0)
尝试将setter更改为String。
public void setINTPROP(String INTPROP){ this.INTPROPString = INTPROP;
然后使用另一个函数将String更改为integrer。 将它作为整数返回,这应该可以解决问题。
答案 1 :(得分:0)
这是另一个方法:
添加此功能。 Java应该能够处理这个问题。
如果要传递的变量是整数,则将使用您拥有的函数。如果是String,那么将调用此函数:
public String setINTPROP(String INTPROP) {
this.INTPROP = Integer.valueOf(INTPROP);
答案 2 :(得分:0)
确定。使用@XmlSchemaType标记字段解决了我的问题。
@XmlSchemaType(name = "string")
public Integer INTPROP