簡體   English   中英

類型中的整數字段不解析java Web服務中的請求參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM