You need to enable JavaScript to run this app. axistools-maven-plugin执行wsdl2java时Global Bindings未被识别
优惠活动
大模型
产品
解决方案
定价
更多

axistools-maven-plugin执行wsdl2java时Global Bindings未被识别

问题根因

你使用的axistools-maven-plugin基于Axis 1.x技术栈实现,默认不支持JAXWS/JAXB格式的绑定文件,你当前编写的jaxws:bindings格式绑定是为CXF、jaxws-maven-plugin等JAXWS栈设计的,Axis 1.x会直接忽略该配置,导致绑定不生效。

修复步骤

1. 调整插件配置

优先推荐直接在插件全局配置中添加映射参数,无需额外绑定文件即可解决问题,调整后的pom插件配置如下:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <sourceDirectory>${basedir}/src/wsdl/</sourceDirectory>
        <typeMappingVersion>1.2</typeMappingVersion>
        <wrapArrays>false</wrapArrays>
        <!-- 新增以下两个参数 -->
        <wrapSimpleTypes>false</wrapSimpleTypes>
        <extraArguments>
            <extraArgument>-Djavax.xml.bind.DatatypeConverter=javax.xml.bind.DatatypeConverter</extraArgument>
        </extraArguments>
        <!-- 若保留绑定文件需移到全局configuration层级,部分版本插件不识别execution层级的bindingFiles配置 -->
        <bindingFiles>
             <bindingFile>${basedir}/src/wsdl/globalBinding.xml</bindingFile>
        </bindingFiles>
    </configuration>
    <executions>
        <execution>
            <id>all</id>
            <configuration>
                <wsdlFiles> 
                    <wsdlFile>Market.wsdl</wsdlFile>
                    <wsdlFile>Payment.wsdl</wsdlFile>
                    <wsdlFile>Customer.wsdl</wsdlFile>
                </wsdlFiles>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
    <!-- 新增jaxb依赖保证类型转换逻辑可用 -->
    <dependencies>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.3.1</version>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
</plugin>

2. 兼容绑定文件修改(若需要保留独立绑定文件)

如果需要继续用独立绑定文件,需要把文件修改为Axis 1.x兼容格式,示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<axis-wsdl2java-bindings xmlns="http://mojo.codehaus.org/axistools/wsdl2java/bindings" version="1.0">
    <globalBindings>
        <javaTypeMapping>
            <xmlType>xsd:decimal</xmlType>
            <javaType>java.math.BigDecimal</javaType>
            <parseMethod>javax.xml.bind.DatatypeConverter.parseDecimal</parseMethod>
            <printMethod>javax.xml.bind.DatatypeConverter.printDecimal</printMethod>
        </javaTypeMapping>
    </globalBindings>
</axis-wsdl2java-bindings>

同时删除原绑定文件中的wsdlLocation="Customer.wsdl"配置,否则绑定仅对Customer.wsdl生效,其余两个WSDL中的decimal类型仍会触发报错。

3. 清理缓存重新构建

执行以下命令清理之前生成的错误代码,重新构建即可:

mvn clean compile

内容的提问来源于stack exchange,提问作者Neeti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 13:30:04