文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么使用cmd根据WSDL网址生成java客户端代码

2023-06-14 08:38

关注

小编给大家分享一下怎么使用cmd根据WSDL网址生成java客户端代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

windows下使用cmd命令提示符生成java webservice客户端代码,可以使用命令提示符直接生成客户端代码,直接导入到项目中,只需配置jdk即可,在jdk的bin文件夹下,按Shift并点击右键,选中“在此处打开命令窗口”

输入命令如下:

wsimport -keep -p com.demo.client -d D:\\(存放的地址) http://XX/Account?wsdl(wsdl地址)

命令参数说明:

-d:生成客户端执行类的class文件的存放目录(默认存放在C:\Users\Administrator\)

-s:生成客户端执行类的源文件的存放目录(默认存放在C:\Users\Administrator\)

-p:定义生成类的包名

图示:

怎么使用cmd根据WSDL网址生成java客户端代码

上面代码是在D盘下生成java代码,-d代表的是生成class文件和java文件,图示:

怎么使用cmd根据WSDL网址生成java客户端代码

如果把这里的-d改为-s,生成的只有java文件,图示:

怎么使用cmd根据WSDL网址生成java客户端代码

文件里面包名都是我们可以指定的,如果没有指定,使用的就是根据WSDL文档里面的targetNamespace来命名。

怎么使用cmd根据WSDL网址生成java客户端代码

共勉:这个时代会犒赏那些爱学习的人。

补充:利用wsdl地址生成java客户端调用类并实现动态配置的方法

前言:

有时,我们经常要和一些外部系统对接,如果是HTTP接口还好,直接用apache的HttpClient工具类调用即可。而如果对方系统是Webservice,则比较麻烦,本文主要讲解如何用对方的wsdl地址生成java客户端调用类并且动态配置访问地址并在java中使用

1,首先我们先要获取对方的wsdl地址,例如

http://xxxx/xxxx/xxxx.asmx?wsdl

2, 接着,在cxf官网上下载apache-cxf-3.2.5

1,将apache-cxf-3.2.5解压缩后安装在D:\\apache-cxf-3.2.5中,设置CXF_HOME环境变量为D:\\ apache-cxf-3.2.5

如下图所示:

怎么使用cmd根据WSDL网址生成java客户端代码

2,运行cmd,执行命令wsdl2java,等待大概1秒钟,出现USAGE证明设置成功

怎么使用cmd根据WSDL网址生成java客户端代码

3,用wsdl地址执行命令:其中-d代表输出路径,后面紧跟着路径,路径后面紧跟着地址,按回车键,生成成功!

怎么使用cmd根据WSDL网址生成java客户端代码

3,生成成功后

由于wsdl是写死在生成的java类的注解中的,有时我们会使用多套环境进行测试,验证,而sit和uat环境的wsdl地址是不尽相同的。此时,我们需要动态配置wsdl的地址和命名空间的地址

@Componentpublic class DebitPushClient implements InitializingBean {  private static URL wsdlUrl;  private static String debitWsdlUrl;  private static String uri;  private static QName SERVICE_NAME;  public static HttpResult pushDebitData(String jsonData) {  FinancialSharing ss = new FinancialSharing(wsdlUrl, SERVICE_NAME);  return (HttpResult) WebServiceClientUtil.invokeWebServiceSoapAction(ss, new QName(uri, "FinancialSharingSoap12"), FinancialSharingSoap.class, "pushDebitData", jsonData); }   private void initWsdlUrl() {  URL url = null;  try {   wsdlUrl = new URL(debitWsdlUrl);  } catch (MalformedURLException e) {   java.util.logging.Logger.getLogger(FinancialSharing.class.getName())     .log(java.util.logging.Level.INFO,       "Can not initialize the default wsdl from {}",       debitWsdlUrl);  } }   @Value("${my.dfdk.wsdl.url:http://xxx.xxx.asmx?wsdl}") public void setDebitWsdlUrl(String debitWsdlUrl) {  DebitPushClient.debitWsdlUrl = debitWsdlUrl; }   @Value("${my.dfdk.wsdl.namespace.uri:http://tempuri.org/}") public void setUri(String uri) {  DebitPushClient.uri = uri; }   @Override public void afterPropertiesSet() throws Exception {  initWsdlUrl();  SERVICE_NAME = new QName(uri, "FinancialSharing"); }}

4,客户端调用,调用成功后,即可获取正确的响应结果,不需要再将xml转成java对象

这篇文章,只是简单介绍了用wsdl地址生成java客户端调用代码的一种方法,除此之外,还可以用maven plugin

cxf-codegen-plugin

生成

<build>  <finalName>cxf-date</finalName>   <plugins>   <plugin>    <groupId>org.apache.cxf</groupId>    <artifactId>cxf-codegen-plugin</artifactId>    <version>${cxf.version}</version>    <executions>     <execution>      <id>generate-sources</id>      <phase>generate-sources</phase>      <configuration>       <sourceRoot>src/main/resources/cxf</sourceRoot>       <wsdlOptions>        <wsdlOption>         <wsdl>http://localhost:8080/cxf-date/services/BookService?wsdl</wsdl>         <frontEnd>jaxws21</frontEnd>         <faultSerialVersionUID>1</faultSerialVersionUID>        </wsdlOption>       </wsdlOptions>      </configuration>      <goals>       <goal>wsdl2java</goal>      </goals>     </execution>    </executions>   </plugin>  </plugins> </build>

以上是“怎么使用cmd根据WSDL网址生成java客户端代码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯