Java客户端调用.NET的WebService实例

 更新时间:2017年09月17日 10:08:33   作者:南川  
下面小编就为大家带来一篇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实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈mybatis中的#和$的区别 以及防止sql注入的方法

    浅谈mybatis中的#和$的区别 以及防止sql注入的方法

    下面小编就为大家带来一篇浅谈mybatis中的#和$的区别 以及防止sql注入的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 如何开发一个简单的Akka Java应用

    如何开发一个简单的Akka Java应用

    这篇文章主要介绍了如何开发一个简单的Akka Java应用 ,帮助大家使用Java创建Akka项目并将其打包,感兴趣的朋友可以了解下
    2020-10-10
  • spring boot教程之建立第一个HelloWorld

    spring boot教程之建立第一个HelloWorld

    这篇文章主要介绍了spring boot教程之建立第一个HelloWorld的相关资料,需要的朋友可以参考下
    2022-08-08
  • java并发使用CountDownLatch在生产环境翻车剖析

    java并发使用CountDownLatch在生产环境翻车剖析

    这篇文章主要为大家介绍了java并发使用CountDownLatch在生产环境翻车的示例剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Java纯代码实现导出pdf合并单元格

    Java纯代码实现导出pdf合并单元格

    这篇文章主要为大家详细介绍了Java如何纯代码实现导出pdf与合并单元格功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 如何实现java递归 处理权限管理菜单树或分类

    如何实现java递归 处理权限管理菜单树或分类

    这篇文章主要介绍了如何实现java递归 处理权限管理菜单树或分类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Spring整合Mybatis方式之注册映射器

    Spring整合Mybatis方式之注册映射器

    这篇文章主要介绍了Spring整合Mybatis方式之注册映射器,MapperFactoryBean注册映射器的最大问题,就是需要一个个注册所有的映射器,而实际上mybatis-spring提供了扫描包下所有映射器接口的方法,每种方式给大家介绍的非常详细,需要的朋友参考下吧
    2024-03-03
  • Spring Data JPA自动生成表时列顺序混乱的最新解决办法

    Spring Data JPA自动生成表时列顺序混乱的最新解决办法

    文章主要介绍了Spring Boot 3.3.5版本中SpringDataJPA自动生成表时列顺序混乱的问题,以及如何通过替换Hibernate实现来解决这个问题,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • mybatis 报错显示sql中有两个limit的解决

    mybatis 报错显示sql中有两个limit的解决

    这篇文章主要介绍了mybatis 报错显示sql中有两个limit的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Spark JDBC操作MySQL方式详细讲解

    Spark JDBC操作MySQL方式详细讲解

    这篇文章主要介绍了Spark JDBC操作MySQL方式,Spark SQL可以通过JDBC从传统的关系型数据库中读写数据,读取数据后直接生成的是DataFrame,然后再加上借助于Spark SQL丰富的API来进行各种操作
    2023-02-02

最新评论