You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDK 17无wsgen.exe的原因及无它构建Web应用的方法

JDK 17 无 wsgen.exe 的原因及替代构建方案

为什么JDK 17 没有 wsgen.exe?

wsgen 是用于生成 JAX-WS(Java API for XML Web Services)相关构件的工具,从JDK 9开始它就被标记为废弃(deprecated),到JDK 11时,JAX-WS模块被完全从JDK核心库中移除,转为独立第三方库。JDK 17作为后续版本,自然不再包含这类已被移除的工具。

而JDK 1.8属于Java 8系列,当时JAX-WS还是JDK核心组件的一部分,所以bin目录会附带wsgen.exe。

无 wsgen 时的Web应用构建方案

1. 用构建工具集成JAX-WS插件

  • Maven:使用jaxws-maven-plugin插件,在pom.xml中配置后,构建时会自动生成JAX-WS所需构件,无需手动调用wsgen。示例配置:
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxws-maven-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <goals>
                <goal>wsgen</goal>
            </goals>
            <configuration>
                <sei>com.yourpackage.YourWebService</sei>
                <genWsdl>true</genWsdl>
            </configuration>
        </execution>
    </executions>
</plugin>

执行mvn clean install即可完成自动生成。

  • Gradle:引入jaxws-gradle-plugin,在build.gradle中配置:
plugins {
    id 'java'
    id 'com.github.jaxws-gradle-plugin' version '2.0.1'
}

jaxws {
    wsgen {
        sei = 'com.yourpackage.YourWebService'
        genWsdl = true
    }
}

执行gradle wsgen任务就能生成所需文件。

2. 手动引入独立JAX-WS库

如果不用构建工具,可以下载JAX-WS独立分发包(包含wsgen的替代工具),将相关jar包加入项目依赖,然后使用分发包中的wsgen命令(或通过jar执行)生成构件。

3. 迁移到现代Web服务技术

如果是新项目,建议迁移到RESTful API(基于JAX-RS,即Jakarta RESTful Web Services)这类现代标准,它们在JDK 17及后续版本中支持更完善,无需依赖传统JAX-WS工具链,开发和构建流程更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:06:20