webService:使用idea -create webservice 根据wsdl 反向生成java 代码报错

客官°小女子只卖身不卖艺 2021-06-30 13:09 1193阅读 0赞

解析组件 ‘s:schema’ 时出错。在该组件中检测到 ‘s:schema

wsimport解析wsdl,生成java

客户端测试工具:soapUi

简单说一下:由于有些wsdl中存在

20190611155633696.png

类似可能是存在 element的引用,导致反向根据wsdl生成webservice报错,

Idea报错:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o2OTE4Mzc4Nw_size_16_color_FFFFFF_t_70

命令行报错:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o2OTE4Mzc4Nw_size_16_color_FFFFFF_t_70 1

后续按照以下的操作 即可 通过idea 或者 dos窗口 生成对应的 java 代码

1 用wsdl生成客户端代码时候,报错如下:

[WARNING] src-resolve.4.2: 解析组件 ‘s:schema’ 时出错。在该组件中检测到 ‘s:schem
a’ 位于名称空间 ‘http://www.w3.org/2001/XMLSchema‘ 中, 但无法从方案文档 ‘http://
www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl#types?schema1’ 引用此
名称空间的组件。如果这是不正确的名称空间, 则很可能需要更改 ‘s:schema’ 的前缀。如
果这是正确的名称空间, 则应将适当的 ‘import’ 标记添加到 ‘

2 解决方案
2.1 首先用浏览器解析wsdl文件,并在项目中新建一个wsdl文件,将浏览器wsdl中内容拷贝到myeclipse的wsdl文件中,如下图

2.2 将<s:element ref="s:schema" /> <s:any />全部替换为
<s:any minOccurs="2" maxOccurs="2" />
2.3 在cmd中用wsimport命令生成客户端代码,这时候的wsdl路径为myeclipse文件中的路径

2.4 刷新myeclise,即可看见生成的代码

最后 通过代码:

  1. public static void main(String[] args) throws IOException {
  2. SaveDmpDmsCrmBusiness saveDmpDmsCrmBusiness = new SaveDmpDmsCrmBusiness();
  3. saveDmpDmsCrmBusiness.setKEY("x");
  4. saveDmpDmsCrmBusiness.setUSERCODE("xxxx");
  5. saveDmpDmsCrmBusiness.setPASSWORD("xxxxxx\"f");
  6. saveDmpDmsCrmBusiness.setSECURECODE("xxxxx");
  7. saveDmpDmsCrmBusiness.setVJson("xxxxxxx");
  8. TDSSvcForDMSInterface svcForDMSInterface = new TDSSvcForDMSInterface();
  9. TDSSvcForDMSInterfaceSoap soap = svcForDMSInterface.getTDSSvcForDMSInterfaceSoap();
  10. Holder<Boolean> saveDmpDmsCrmBusinessResult = new Holder<Boolean>();
  11. Holder<String> vinterfacekey = new Holder<String>();
  12. Holder<String> verrcode = new Holder<String>();
  13. Holder<String> verrmsg = new Holder<String>();
  14. soap.saveDmpDmsCrmBusiness("x","xxxx","xxxx\"f",
  15. "xxxxx","xxxxxxxx",
  16. saveDmpDmsCrmBusinessResult,vinterfacekey,verrcode,verrmsg);
  17. System.in.read();

发表评论

表情:
评论列表 (有 0 条评论,1193人围观)

还没有评论,来说两句吧...

相关阅读