• 技术文章 >Java >java教程

    Java如何调用.NET中WebService的实例

    黄舟黄舟2017-09-18 09:46:54原创709
    下面小编就为大家带来一篇Java客户端调用.NET的WebService实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来。

    1,新建.NET WebService。只在原方法上加上一个string类型的参数str


    [WebMethod]
    public string HelloWorld(string str)
    {
      return "Hello World";
    }

    2,新建Java的WebService客户端,lib引入以下5个jar包(我是用idea生成的WebService客户端,会下载7个包,我试着删掉了log4j和saaj两个包也能正常运行)


    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
     
    public class HelloWorldClient {
     public static void main(String[] argv) {
       String endpoint ="http://localhost:64662/WebService1.asmx?wsdl";
       try {
         // 定义服务
         Service service = new Service();
         Call call = (Call) service.createCall();
         call.setTargetEndpointAddress(endpoint);
         call.setOperationName(new QName("http://tempuri.org/", "HelloWorld"));
         call.setSOAPActionURI("http://tempuri.org/HelloWorld");
         call.addParameter(new QName("http://tempuri.org/", "str"),// 这里的str对应webservice参数名称
             XMLType.SOAP_STRING, ParameterMode.IN);
         call.setReturnType(XMLType.SOAP_STRING);
         String retVal1 = (String) call.invoke(new Object[] {"Hello World!"});
         System.out.println(retVal1);
       } catch (Exception e) {
         e.printStackTrace();
       }
     }
    }

    注:

    1,网上看到有直接写成call.setOperationName("HelloWorld"),我试过不行。不知道是不是跨语言的原因。

    2,网上也看到省略call.setSOAPActionURI这 一句的,但我的报错了。

    3,其实项目的WebService里面用的参数是实体,我试着Java端通过XMLType.XSD_ANYTYPE类型传实体过去,结果说类型没注册之类的。网上看有方案比较繁琐,倒不如将实体序列化成Json串传过去省事。

    4,参数的命名空间参见服务页面

    以上就是Java如何调用.NET中WebService的实例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:WebService Java .NET
    上一篇:Java中jasperReport实现动态列打印的实例 下一篇:Java中关于HttpURLConnection附件上传详解
    Web大前端开发直播班

    相关文章推荐

    • 带你搞懂Java的接口(实例详解)• 详细了解一下Java并发编程三要素• Java技巧总结之如何看Lambda源码• 实例详解JAVA抽象工厂模式• 一起聊聊Java多线程之线程安全问题

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网