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

将WAR项目转为JAR项目遇配置文件缺失等问题求助

解决方案:将JAX-RPC WAR转为可执行JAR并解决Axis配置问题

1. 修复资源文件打包问题

JAR打包默认不会包含src/main/webapp下的文件,需修改pom.xml将server-config.wsdd打包进JAR:

<build>
    <resources>
        <resource>
            <directory>src/main/webapp</directory>
            <includes>
                <include>WEB-INF/server-config.wsdd</include>
            </includes>
            <targetPath>META-INF/resources</targetPath>
        </resource>
    </resources>
    <!-- 保留原有plugins配置,比如maven-jar-plugin指定主类 -->
</build>

2. 在WebServiceServerConfig中配置嵌入式Tomcat

直接在带@Configuration的类中添加以下代码,指定Axis配置文件路径并注册Axis Servlet:

@Configuration
public class WebServiceServerConfig {

    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                WebResourceRoot resources = new StandardRoot(context);
                // 映射JAR内的WEB-INF资源到Tomcat的WEB-INF路径
                resources.addPreResources(
                    new DirResourceSet(resources, "/WEB-INF", 
                        ClassUtils.getDefaultClassLoader().getResource("META-INF/resources/WEB-INF").getPath(), "/")
                );
                context.setResources(resources);
            }
        };
    }

    @Bean
    public ServletRegistrationBean<AxisServlet> axisServlet() {
        ServletRegistrationBean<AxisServlet> registration = new ServletRegistrationBean<>(new AxisServlet(), "/services/*");
        // 告诉Axis配置文件的位置
        System.setProperty("axis.ServerConfigFile", "META-INF/resources/WEB-INF/server-config.wsdd");
        return registration;
    }
}

3. 补充缺失的依赖

错误提示缺少邮件与激活相关类,在pom.xml中添加依赖:

<dependencies>
    <!-- 原有依赖保留 -->
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
</dependencies>

4. 验证要点

  • 打包后检查JAR内是否存在META-INF/resources/WEB-INF/server-config.wsdd
  • 启动应用后,Axis会读取指定路径的配置,WEBPanelServices服务即可被正确识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:05:10