java - 从 java 客户端将数字参数传递到 Web 服务时出现问题

标签 java web-services client axis

我尝试将数字参数传递给接收该值并将其返回的 Web 服务。 这是网络方法的片段:

@WebMethod(operationName = "getNumber")
public Integer getNumber(@WebParam(name = "i")
Integer i) {
    //TODO write your implementation code here:
    System.out.println("number : "+i);
    return i;
}

这是我的客户端代码片段:

    Map results = FastMap.newInstance();
    results.put("result", "success");

    String endPoint = "http://localhost:8084/ProvideWS/MathWS";
    URL endpoint=null;
    try{
        endpoint = new URL(endPoint);
    }
    catch (MalformedURLException e) {
        org.ofbiz.base.util.Debug.log("Location not a valid URL "+e);
        // TODO: handle exception
    }
    Service service = null;
    Call call = null;
    try{
        service = new Service();

        call = (Call)service.createCall();
        call.setTargetEndpointAddress(endpoint);
        String nameSpace = "http://ws/";

        String serviceName = "getNumber";

        call.setOperationName(new QName(nameSpace, serviceName));

        call.addParameter("i",org.apache.axis.Constants.XSD_INTEGER , ParameterMode.IN);
        call.setReturnType(org.apache.axis.Constants.XSD_INTEGER);

        Object msg[] = new Object[]{new Integer(5)};    
        for (Object o : msg) {
            org.ofbiz.base.util.Debug.log("object to be sent===== "+o.toString());
        }
        Object ret = call.invoke(msg);
        results.put("result", "result : "+ ret.toString());

    }
    catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        org.ofbiz.base.util.Debug.log("exc when running soap client test : "+e);
        results.put("result", "error : "+e);
    }
    return results;

问题是客户端的返回值总是0(服务器接收到的数字为零),当参数是字符串时,我用来传递参数的方法工作正常。我尝试过对服务器中的返回值进行硬编码,并且客户端中的输出很好,所以我认为这一定是服务器检索参数的方式有问题。

您知道为什么会发生这种情况以及如何解决这个问题吗?

任何帮助将不胜感激,谢谢

最佳答案

我不知道是什么原因导致了您的问题。但我要做的第一件事是 try catch 发送到服务器的实际请求。这应该可以为您提供一些线索,以确定根本问题是在客户端还是服务器端。

关于java - 从 java 客户端将数字参数传递到 Web 服务时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4883003/

相关文章:

java - REST API - 对不同的参数使用相同的 URI 和相同的方法来调用不同的方法

.net - 如何为我的网站制作一个像 'Digg it' 这样的按钮?

java - 从网络服务器到客户端的数据传输速率和数据量

python - 客户端断开Python连接时保持服务器打开

java - Spring RESTful客户端: root tag exception

java - 为什么一个int的maxValue + 1和maxValue是一样的,shorts和bytes却不是?

java - 如何测试 Hibernate HQL 查询?

java - 将 log4j 与继承的类一起使用

PHP 5 SoapServer 用法?

python - 如何使用 Angular 客户端和 Django 服务器处理读取、提取和保存极大的 csv 或 excel 数据