类型中的整数字段不解析java Web服务中的请求参数

时间:2016-12-10 12:46:05

标签: java web-services

为什么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

我希望我能解释我的问题。感谢。

3 个答案:

答案 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