在web项目中调用webservice接口,以及创建自己的webservice服务端

由于甲方的服务器并不在外网,编码环境是不能直接访问对方的webservice接口的,所以需要把wsdl文件下载到本地,在通过工具生成代理类。

用java的JDK自带命令wsimport -s . xxx.wsdl生成代理类

其中-s表示生成源代码,不指定的话只会生成.calss字节码文件

中间的点"."表示在当前路径

后面空格接上本地的wsdl文件或者URL,例如http://www.xxx.com/serviceInterface?wsdl

wsimport命令可以指定包名以及生成jar包等,具体命令用法百度


但是这次执行命令不成功,报错:Use of SOAP Encoding is not supported

百度了一下,说是wsimport不支持use="encoded",是比较旧的格式,需要用到axis这个框架

有一篇博客有解决方法:根据wsdl生成客户端:Use of SOAP Encoding is not supported

不过我直接用eclipse根据wsdl自动生成客户端代理类了,就不用自己一个一个导入jar包再调用命令。

这里使用的是J2EE Eclipse,里面集成了axis插件,myeclipse好像不行

具体步骤如下:

1.首先创建一个java工程,并把wsdl文件复制进入


2.工程右键,创建一个web service client


3.选择wsdl文件,点击finish即可


4.完成


由于我使用的是Intellij IDEA开发项目,所以还需要把代理类拷贝过去,以及配置maven导入axis的相关jar包

可以先在eclipse修改包名,它会自动关联修改;也可以拷到Intellij再修改

在pom.xml中配置需要的jar包

mail-1.4.jar

saaj-api-1.3.jar

jaxrpc-1.1.jar

commons-discovery-0.2.jar

commons-logging-1.1.jar

axis-1.4.jar

activation-1.1.jar

wsdl4j-1.4.jar

这里列出一些配置,其他的去maven repository搜索,然后复制粘贴过来就行了

服务端发布是用CXF框架的,刚用TinyMCE写博客不太习惯,下一篇再说服务端吧

关于Axis和CXF框架区别,引用其他人的博客:WebService流行框架之Axis和CXF

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果...
    Java3y阅读 9,686评论 5 139
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • 业务场景篇 Spring的概述 Spring是完全面向接口的设计,降低程序耦合性,主要是事务控制并创建bean实例...
    假话当真阅读 1,652评论 0 7
  • ar包 用途axis.jar SOAP引擎包commons-discovery-0.2.jar 用来发现、查找和实...
    煮茶听雨阅读 1,963评论 0 2
  • 痴/看一树柳条绿成荫 守/那一夜昙花笑如颜 梦/前一世情缘何世圆 游/千山万水为谁停留 喜欢你的笑 就像花儿一样灿...
    醒尘阅读 330评论 0 0