[英]Integer field in a type does not parse request parameter in java web service
為什么Integer字段無法獲取我發送的值。 如果我在WebMethod中使用Integer參數(比如發送ID)可以正常工作。
String字段也可以獲得我發送的值而沒有任何問題。
這是Web服務:
@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
我希望我能解釋我的問題。 謝謝。
嘗試將setter更改為String。
public void setINTPROP(String INTPROP){this.INTPROPString = INTPROP;
然后使用另一個函數將String更改為integrer。 將其作為整數返回,這應該可以解決問題。
這是另一個方法:
添加此功能。 Java應該能夠處理這個問題。
如果要傳遞的變量是整數,則將使用您擁有的函數。 如果它是一個String,那么將調用此函數:
public String setINTPROP(String INTPROP) {
this.INTPROP = Integer.valueOf(INTPROP);
好。 使用@XmlSchemaType標記字段解決了我的問題。
@XmlSchemaType(name = "string")
public Integer INTPROP
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.