SpringBoot踩坑(2)

Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.

启动时报错
在这里插入图片描述
在网上发现有好多说法,有的说是数据库连接名错误,有的说版本问题。如果说是链接名错误,下面还有有其他的报错信息。但是这个错误并没有。其实报错的真正原因是端口冲突。把冲突的端口kill掉或者 在配置文件更改端口
在这里插入图片描述
问题解决可以正常启动了
在这里插入图片描述

### Spring Boot 整合 TongWeb 常见问题及解决方法 在将 Spring Boot 与国产化中间件 TongWeb 进行集成的过程中,开发者可能会遇到一些常见问题。以下是这些问题的详细分析以及对应的解决方案。 #### 1. **Spring Boot 应用无法直接嵌入 TongWeb** TongWeb 是一个完整的 Java EE 应用服务器,而不是像 Tomcat 那样的嵌入式容器。因此,Spring Boot 默认的可执行 JAR 包形式无法直接运行在 TongWeb 中 [^3]。 **解决方案:** - 将 Spring Boot 项目打包为 WAR 文件格式。 - 修改 `pom.xml` 文件中的打包方式为 `war`: ```xml <packaging>war</packaging> ``` - 确保主类继承 `SpringBootServletInitializer` 并重写 `configure` 方法: ```java @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 2. **依赖冲突导致应用部署失败** 由于 TongWeb 自带了一些库(如 JSP 引擎、JDBC 驱动等),而 Spring Boot 项目中可能也引入了类似的依赖,这可能导致版本冲突或类加载问题 [^1]。 **解决方案:** - 在 `pom.xml` 中使用 `<exclusion>` 排除与 TongWeb 冲突的依赖项。 - 示例:排除内嵌的 Tomcat 相关依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> ``` #### 3. **日志框架冲突** Spring Boot 默认使用 Logback 或 Log4j2 作为日志框架,而 TongWeb 可能使用了 JDK Logging 或其他日志实现,导致日志输出异常或重复 [^2]。 **解决方案:** - 统一日志门面为 SLF4J,并排除其他日志实现。 - 在 `pom.xml` 中添加以下内容以屏蔽 JDK Logging: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` #### 4. **TongWeb 版本兼容性问题** 不同版本的 TongWeb 对 Java 版本、Servlet 规范的支持程度不同,可能导致 Spring Boot 应用在部署时出现不兼容的情况 [^1]。 **解决方案:** - 检查 TongWeb 的官方文档,确认其支持的 Java 版本和 Servlet API 版本。 - 调整 Spring Boot 项目的 `pom.xml` 中的 Java 版本配置: ```xml <properties> <java.version>1.8</java.version> </properties> ``` - 如果需要特定版本的 Servlet API,可以在 `pom.xml` 中显式声明: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> ``` #### 5. **数据库连接池配置问题** Spring Boot 默认使用 HikariCP 作为连接池,但在 TongWeb 中部署时,通常建议使用容器管理的数据源(JNDI)以获得更好的性能和资源管理 [^3]。 **解决方案:** - 在 `application.properties` 中配置 JNDI 数据源: ```properties spring.datasource.jndi-name=java:comp/env/jdbc/MyDataSource ``` - 在 TongWeb 的配置文件中定义数据源,例如在 `tongweb.xml` 或 `server.xml` 中添加: ```xml <Resource name="jdbc/MyDataSource" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username="root" password="password" maxTotal="20" maxIdle="10" maxWaitMillis="1000"/> ``` #### 6. **启动时提示找不到主类或上下文路径错误** 在将 WAR 包部署到 TongWeb 后,可能出现找不到主类或访问路径不对的问题。 **解决方案:** - 确保 `web.xml` 或 `application.properties` 中没有错误的上下文路径配置。 - 检查 WAR 包结构是否正确,确保 `WEB-INF/classes` 下包含所有编译后的类文件。 - 查看 TongWeb 的日志文件,定位具体的类加载错误信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值