【发布时间】:2020-08-31 05:45:11
【问题描述】:
在尝试了解 wsdl2java 插件的工作原理后,我了解到在 pom 的配置中,我们指定了将从 wsdl 生成骨架的包名。
<goals>
<goal>wsdl2code</goal>
</goals>
<configuration>
<packageName>com.a.b.c.d</packageName>
<wsdlFile>${project.build.directory}/../src/main/webapp/WEB-INF/c/d/META-INF/wsdlfile.wsdl</wsdlFile>
</configuration>
对于类,WSDL文件导入xsd命名空间,类生成在两个以命名空间为名称的package中。第一个是命名空间/publics,第二个是命名空间/类型
<wsdl:definitions xmlns:ns="http://a.b.c.d.com" xmlns:ns3="http://a.b.c.d.com/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://a.b.c.d.com">
<wsdl:types>
<xs:schema xmlns:stn_51="http://a.b.c.d.com/publics" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:types="http://a.b.c.d.com/types" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://a.b.c.d.com/types">
<xs:import namespace="http://a.b.c.d.com/publics" schemaLocation="xsd0.xsd" />
问题是包名与另一个模块中的包名相同,这会导致混淆。 wsdl2java 中是否有解决此问题的选项? 或者有没有办法使用wsdl解决这个问题?
【问题讨论】:
标签: xml xsd wsdl axis2 wsdl2java