【问题标题】:Custom package name of generated classes axis2-wsdl2code-maven-plugin生成类的自定义包名axis2-wsdl2code-maven-plugin
【发布时间】: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


    【解决方案1】:

    所以我必须通过查看 wsdl2code 的文档来解决这个问题,在该文档中我发现了这个标签:NamespaceURLs。它允许您指定命名空间列表,每个命名空间都有一个特定的包名称。这是一个如何在 POM 中使用它的示例。

    <execution>
                        <id>...</id>
                        <goals>
                            <goal>wsdl2code</goal>
                        </goals>
                        <configuration>
                        <namespaceURIs>
                          <namespaceURI>
                            <uri>http://a.b.c.d.com/publics</uri>
                            <packageName>com.d.c.b.a.service-a.publics</packageName>
                          </namespaceURI>
    
                        </namespaceURIs>
                            <packageName>com.d.c.b.a.service-a</packageName>
                            <wsdlFile>...</wsdlFile>
                        </configuration>
                    </execution>
    

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 2015-04-18
      • 2017-05-07
      • 2011-12-31
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 2017-06-24
      • 2010-11-22
      相关资源
      最近更新 更多