Glassfish 通过4848的Applications配置项目时候,项目不能访问,也没有报错.没有lunch

本文探讨了在项目部署过程中遇到的问题,特别是当Deploy的ContextRoot路径发生变化导致无法通过Action访问项目的情况。文章提供了可能的原因分析及解决方案:通过重新部署来解决lunch不出现的问题。
在Action中没有Lunch ,这个是因为项目部署的时候,有可能报错了,然后在重新部署的时候,也没有报错。但是就是访问不了项目
原因应该是Deploy 的Context Root里面的路径变了。所以lunch 不出现

所以重新deploy一下就可以了。

在 Spring Boot 项目中,为了避免 `java.servlet.http` 相关的类冲突错误,通常需要排除内嵌的 Tomcat 依赖,尤其是当项目需要部署为 WAR 包并运行在外部 Tomcat 容器中时。这是因为外部 Tomcat 已经提供了自身的 Servlet API 实现,如果项目中同时包含相同功能的依赖,会导致版本冲突,从而引发 `NoClassDefFoundError` 或 `AbstractMethodError` 等异常。 ### 排除 Tomcat 依赖的配置方式 在 Maven 项目中,可以通过在 `pom.xml` 文件中将 `spring-boot-starter-tomcat` 的作用域设置为 `provided`,从而避免将其打包进最终的 WAR 文件中: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> ``` 此配置确保在编译和测试阶段仍然可以使用 Tomcat 提供的 API,但在构建 WAR 包时不会将其包含进去,从而避免与外部 Tomcat 容器自带的库冲突。 此外,如果项目中引入了其他与 Servlet API 冲突的依赖(如 `javax.servlet-api`),也应将其设置为 `provided`,以避免重复打包: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> ``` 上述方式适用于需要部署到外部 Tomcat 9 或更高版本的项目,因为这些版本支持 Servlet 4.0 规范。如果部署环境为 Tomcat 8,则应使用 Servlet 3.1 的版本以确保兼容性。 ### 构建 WAR 包的注意事项 在将 Spring Boot 项目打包为 WAR 文件时,还需确保 `pom.xml` 中的打包方式设置为 `war`,并正确配置 `maven-war-plugin` 插件: ```xml <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> </plugins> </build> ``` 同时,确保 `src/main/webapp/WEB-INF/web.xml` 文件存在,并且配置正确,以支持 Servlet 容器的部署描述符。 ### 依赖管理与版本兼容性 除了排除 Tomcat 依赖外,还需注意项目中其他依赖的版本兼容性问题。例如,某些框架(如 Jersey)在与 Spring Boot 集成时可能与 Tomcat 的版本不兼容,导致部署失败。此时应根据具体错误信息调整相关依赖版本,或排除不兼容的模块。 ### 示例:排除 Jersey 与 Spring 集成的冲突 如果项目中使用了 Jersey 并出现兼容性问题,可以通过降级 `jersey-spring3` 的版本来解决冲突: ```xml <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-spring3</artifactId> <version>2.22.1</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency> ``` 该配置通过排除与 Spring 的冲突模块,确保 Jersey 与 Spring Boot 的集成更加稳定。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值