webservice中定义的ref参数 用java怎么调用

问题描述

webservice中定义的ref参数 用java怎么调用

接口格式是这样的 int HisTrans(string ParamIn, ref string ParamOut)
我java的写法是:
String paramIn = "GetHealthYE卡号";

    String url = "http://ip:668/jjzyy/weixinwebservice.asmx";// 访问的url
    String namespace = "http://tempuri.org/";// xml文件中的targetNamespace名称
    String methodName = "HisTrans";// 要调用的方法名称
    String soapActionURI = "http://tempuri.org/HisTrans";// targetNamespace+methodName
    try {
        Call call;// 引用org.apache.axis.client.Call;
        Service service = new Service();// org.apache.axis.client.Service;
        call = (Call) service.createCall();

        call.setTargetEndpointAddress(url);
        call.setUseSOAPAction(true);
        call.setSOAPActionURI(soapActionURI);
        call.setOperationName(new QName(namespace, methodName));

        call.addParameter(new QName(namespace, "ParamIn"),
                org.apache.axis.encoding.XMLType.XSD_STRING,
                ParameterMode.IN);// byProvinceName传人的参数名称要和wsdl文件的一样,XSD_STRING传人的参数类型
        call.addParameter(new QName(namespace, "ParamOut"),
                org.apache.axis.encoding.XMLType.XSD_STRING,
                ParameterMode.IN);// byProvinceName传人的参数名称要和wsdl文件的一样,XSD_STRING传人的参数类型
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 返回的参数,根据具体返回值修改
        String[] str = new String[2];
        str[0] = paramIn;// 第一个参数值
        str[1] = "";// 第一个参数值
        Object obj = (Object) call.invoke(str);
        System.out.println("obj + " + obj.toString() + ";" +  str[1]);
    } catch (ServiceException e) {
        e.printStackTrace();
    } catch (RemoteException e) {
        e.printStackTrace();
    }

有没有什么方式可以获取到 ParamOut的值(把类型设置成OUT 会报错)

解决方案

没试过,最好看wsdl定义的文件是怎么生成的,ref生成什么了。从字面上立即,ref应该是不可以的,按地址无从谈起。

如果服务端是自己写的,建议规范些,返回值都放到return中。

解决方案二:

http://www.jjzyy.org:668/jjzyy/weixinwebservice.asmx?wsdl![图片说明](http://img.ask.csdn.net/upload/201503/06/1425628499_432241.png)

时间: 2024-10-24 13:56:13

webservice中定义的ref参数 用java怎么调用的相关文章

webservice中如何实现服务端为JAVA而客户端为.net或者C

问题描述 比如WEBSERVICE用CXF实现用JAVA做的服务端,定义了一个服务端接口 , 提供给客户端调用(ITransPort.java)生成的WSDL地址为:http://localhost:8080/LifeEC/WebService/transPort?wsdl如果是客户端用JAVA调用就会很好实现,用WSDLTOJAVA方法生成客户端代码调用相关的方法但是如果客户端为 其他编程语言,如.NET, 是否也有相关CXF针对.NET的库文件来生成客户端代码,或者用其他方式来调用服务端的J

java中panel实现线程接口以后,要调用repaint函数时,不进run函数

问题描述 java中panel实现线程接口以后,要调用repaint函数时,不进run函数 具体情况是 mypanel类实现了线程接口,在run函数中定义了sleep(100)后调用repaint函数,做一个小坦克游戏,在repaint之前要判断是否击中坦克,击中后要显示三张图片来体现爆炸效果,可是经过调试发现,每次第一次击中的时候,都是直接好多次repaint,没有休眠,后来发现根本就没有进mypanel的run()方法,好像有另一个其他线程再调用paint.这是怎么回事?感谢大家了 pack

Java程序调用带参数的shell脚本返回值

Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量($#,$@,$0,$1,$2)的含义解释 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以"$1 $2 - $n"的形式输出所有参数. $@ 所有参数列表.如"

java 编程-关于java对象调用的一个菜鸟级问题

问题描述 关于java对象调用的一个菜鸟级问题 本人新手,币也不够,帮帮忙吧大家.学java不久,遇到这么一个问题:怎么在一个类中调用另一个类的对象获取该对象数据呢?(两个类不在同一个包里)如包a中有class A{} 和两个对象A a1=new A():A a2=new A();包b中有class B{}.我要在b包中访问a1和a2应该怎么访问呀?要求b包不再生成新的A类对象,且A类不能是单例. 解决方案 a中添加class Global{ static public A a1; static

JSP取得在WEB.XML中定义的参数

js|web|xml 在WEB.XML文件中设置参数: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <we

在Java中定义自己的工具库

一个有经验的Java程序人员往往会把一些常用的语句定义成一种工具,然后把其放在自己的工具库中 .不知道大家有没有这么操作的习惯,反正笔者的工具库中,已经有上百个工具了.凭借这这些工具,给 笔者开发Java应用程序提供了很大的方便.即可以不用担心重名导致的冲突,而且还可以简化输入,一举 两得.为此笔者在这里大力推荐,Java程序员要从现在开始建立自己的工具库,并在以后工作中不断的完 善它. 一. 工具库的一个简单例子. 记得笔者刚开始建立工具库的时候,是从一个输出语句开始的.有时候Java程序开发

class-为什么说java中一个类中定义两个构造函数。

问题描述 为什么说java中一个类中定义两个构造函数. 为什么说java中一个类中定义两个构造函数.是不是意思就是一个是无参构造函数,一个是有参数的构造函数, 解决方案 构造函数可以定义很多个,如同函数重载,只要参数个数类型不同就可以. 因此无参构造函数只能有一个.至于定义2个,可以是一个无参,一个有参,也可以是2个有参. 解决方案二: oh no, an object can have multiple constructors with different parameters. 解决方案三

java菜鸟:可以在一个类中定义其他类的对象吗

问题描述 最近才开始学java,遇到一个问题:假如两个类classS1{},classS2{},可以在S2的构造函数中定义一个对象S1s1=newS1();吗?多谢! 解决方案 解决方案二:可以,只要S1拥有访问S2的权限解决方案三:当然可以,不一定在方法里,也可以作为属性解决方案四:引用1楼whos2002110的回复: 可以,只要S1拥有访问S2的权限 怎么确定S1有访问S2的权限呢,兄台能否帮我看看这段代码为啥出错:在g.fillRect中的参数中调用hero.getX(),hero.ge

java 内部类-java方法中定义的局部内部类问题

问题描述 java方法中定义的局部内部类问题 在方法中定义的内部类为什么只能访问方法中的final类型局部变量? package com.study; interface OutInterface2{ //定义一个接口 } class OuterClass3 { public OutInterface2 doit(final String x){//doit方法参数为final类型 //在doit()方法中定义一个内部类 class InnerClass2 implements OutInter