生成类的自定义程序包名称axis2-wsdl2code-maven-plugin

问题描述 投票:0回答:1

[试图理解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命名空间,并且这些类在以名称空间为名称的两个包s中生成。第一个是名称空间/公共,第二个是名称空间/类型

<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个回答
0
投票

因此,我需要查看wsdl2code的文档来解决此问题,在该文档中找到了有关此标记的名称空间URL。它允许您指定一个名称空间列表,每个名称空间都有一个特定的程序包名称。这是如何在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>
© www.soinside.com 2019 - 2024. All rights reserved.