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

基于Java与Maven搭建Tomcat 10运行的SOAP Web服务的相关问题

Tomcat 10上Java SOAP Web服务的Maven项目配置指南

一、Maven原型(Archetype)选择

优先选maven-archetype-webapp,这是最通用的Java Web项目原型,能快速生成符合Servlet规范的目录结构,完美适配Tomcat 10。

如果想找更贴合SOAP服务的原型,部分JAX-WS相关的原型可能存在版本滞后问题(未更新到Jakarta EE),反而不如通用的webapp原型灵活——后续自己添加SOAP相关依赖即可,成本更低。

二、能否不使用原型创建项目?

完全可以。直接创建空Maven项目,手动搭建目录结构:

  • 核心目录:src/main/java(存放Java代码)、src/main/resources(资源文件)、src/main/webapp(Web根目录)
  • 必须的Web目录:src/main/webapp/WEB-INF,如果不用web.xml可以靠注解配置Servlet,否则需要在该目录下添加web.xml

这种方式自由度更高,适合对项目结构有明确规划的场景。

三、pom.xml基础配置部分

你的pom.xml需要包含以下核心模块:

1. 项目基本信息

定义项目的groupId、artifactId、版本号,以及打包类型为war(因为要部署到Tomcat):

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>soap-web-service</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>SOAP Web Service</name>
</project>

2. 依赖配置

Tomcat 10基于Jakarta EE(替代原Java EE),所以依赖要选Jakarta规范的包:

<dependencies>
    <!-- Jakarta Servlet API:Tomcat自带,设为provided避免打包冲突 -->
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>6.0.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- JAX-WS API:SOAP服务的核心API -->
    <dependency>
        <groupId>jakarta.xml.ws</groupId>
        <artifactId>jakarta.xml.ws-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- JAX-WS 实现:Tomcat10不自带,需引入运行时依赖 -->
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>4.0.2</version>
        <exclusions>
            <!-- 排除冲突的Servlet依赖 -->
            <exclusion>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

3. 构建配置

配置Maven插件确保编译、打包符合要求:

<build>
    <plugins>
        <!-- Maven War插件:打包成符合Jakarta规范的WAR包 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.3.2</version>
            <configuration>
                <!-- 如果用注解替代web.xml,设为false避免报错 -->
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>

        <!-- 编译插件:指定Java版本(Tomcat10支持Java8+,推荐11/17) -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>
        </plugin>
    </plugins>
</build>

内容的提问来源于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 21:11:29