有两种选择可以实现这一点,两者都像魅力一样。并且这两个选项都可以从您命名的 ant\gradle 自动执行。
1.使用 -clientjar 然后重新打包源
2.手动将wsdl插入jar并自定义wsdLlocation URL
假设你有 C:\WSDL\SO\stas.wsdl (我在 Windows 上运行)
CD C:\WSDL\SO\
第一个选项
C:\WSDL\SO>wsimport -clientjar StasWebServiceClient.jar stas.wsdl
这会创建 StasWebServiceClient.jar jar 文件,但是在将其导入 eclipse 时,由于主题问题(默认包),源不可导入。
=> 将 jar 文件解压到当前文件夹,你可以使用 7zip,或者任何其他很棒的 zip 工具,或者你可以运行
C:\WSDL\SO>jar xf StasWebServiceClient.jar
解压罐子。
文件夹层次结构应如下所示
C:\WSDL\SO\META-INF
C:\WSDL\SO\stas.wsdl(original wsdl)
C:\WSDL\SO\StasWebServiceClient.jar(generated jar file)
C:\WSDL\SO\META-INF\wsdl(created by -clientjar)
C:\WSDL\SO\META-INF\wsdl\stas.wsdl(copied by -clientjar)
C:\WSDL\SO\com\...
/* all generated classes\sources */
C:\WSDL\SO\com\...
=> 做
C:\WSDL\SO>jar -cvf StasWebServiceClientCorrect.jar com META-INF
这将创建另一个 jar StasWebServiceClientCorrect.jar,它现在具有正确的包装。
第二种选择
=> 运行 wsimport
C:\WSDL\SO>wsimport -keep stas.wsdl
生成代码。我总是喜欢有 -keep 选项,但这取决于你。
=> 创建 META-INF 文件夹
C:\WSDL\SO>mkdir META-INF
=> 创建 META-INF/wsdl 文件夹
C:\WSDL\SO>cd META-INF
C:\WSDL\SO\META-INF>mkdir wsdl
=> 上一个文件夹。
C:\WSDL\SO\META-INF>cd ..
=> 将 stas.wsdl 文件复制到 META-INF\wsdl\stas.wsdl
C:\WSDL\SO>copy stas.wsdl META-INF\wsdl\stas.wsdl
=> 创建一个 jar 存档
C:\WSDL\SO>jar -cvf StasWebServiceClient.jar com META-INF
将 jar 导入工作区。当您将创建对服务的实际调用时,请使用:
StasService stasService = new StasService(StasService.class.getClassLoader().getResource("META-INF/wsdl/stas.wsdl") )