Spring Boot学习排错记录(一) 配置application.properties时数据类型绑定失败

本文讲述了在学习SpringBoot时遇到的`ConverterNotFoundException`报错,原因在于将String类型的hobby配置值误绑定到java.awt.List。通过分析包导入错误和数据类型差异,解决了问题并给出了正确导入`java.util.List`的方法。最后展示了配置成功后的person对象信息。

#报错信息:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under ‘person.hobby’ to java.awt.List:
Property: person.hobby
Value: play,read,sleep
Origin: class path resource [application.properties] - 3:16
Reason: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.awt.List]

学习黑马的《Spring Boot企业级开发》第二章《Spring Boot核心配置与注解》时,在学习使用application.properties配置文件出现如上报错,分析报错提示发现,数据类型无法进行转换,由此导致数据类型绑定失败。
由此去溯源进行属性定义的代码:

//导入的数据类型支持包
import java.awt.*;
//Person类中的属性设置
private List hobby;

在这里找到了问题所在,学过Java基础的同学我们都知道,awt.List和util.List其实是两种数据类型,二者具体区别如下。
1.java.util
是JAVA的utility工具包
包含一般工具.其中的 list 指的是集合,用来装数据的

2.java.awt
是JAVA的abstractwindowtoolkit,抽象窗口工具包
提供图形用户接口的能力,其中的 list 是用来做图形界面列表的

分析发现,我导的包出错了,应该导入java.util.List这个包,所以只需要把导包语句改成

import java.util.List;

问题即可解决。

成功输出person对象在application.properties中所配置的信息:

Person{id=1, name=‘tom’, hobby=[play, read, sleep], family=[father, mather], map={k1=v1, k2=v2}, pet=Pet{type=‘dog’, name=‘kity’}}

ps:一定要注意细节!


<think>我们正在解决如何部署XXL-JOB调度中心WAR包到Tomcat或Spring Boot嵌入容器,并配置其使用Oracle数据库的问题。 根据用户之前的上下文,我们已经知道主项目(执行器)使用的是Oracle数据库,现在需要独立部署调度中心(Admin)并同样使用Oracle数据库。 步骤分解: 1. 下载XXL-JOB调度中心的WAR包或源码。 2. 配置调度中心的数据库连接(Oracle)。 3. 部署到Tomcat或作为Spring Boot嵌入容器运行。 注意:XXL-JOB官方默认提供的是MySQL脚本,我们需要将其转换为Oracle脚本,并在调度中心配置Oracle数据源。 详细步骤:</think>### 部署XXL-JOB调度中心WAR包并配置Oracle数据库 以下是详细部署步骤,支持Tomcat和Spring Boot两种部署方式。XXL-JOB调度中心默认使用MySQL,需进行Oracle适配[^2][^3]。 --- #### 、准备Oracle数据库 1. **创建数据库表** 下载官方SQL脚本(`tables_xxl_job.sql`),修改为Oracle语法: - 替换`AUTO_INCREMENT`为序列+触发器 - 修改`datetime`为`DATE` - 调整索引语法 ```sql /* 示例:创建序列 */ CREATE SEQUENCE xxl_job_group_seq; CREATE TABLE xxl_job_group ( id NUMBER PRIMARY KEY, app_name VARCHAR2(64) NOT NULL, title VARCHAR2(32) NOT NULL ); ``` > 完整Oracle脚本可参考社区适配版[^3] 2. **执行脚本** 使用SQL*Plus或SQL Developer运行修改后的脚本,创建16张系统表。 --- #### 二、部署到Tomcat ##### 步骤1:获取调度中心WAR包 - 从[官方Release](https://github.com/xuxueli/xxl-job/releases)下载`xxl-job-admin-2.4.0.war` - 或自行编译: ```bash git clone https://github.com/xuxueli/xxl-job.git mvn clean package -Dmaven.test.skip=true ``` ##### 步骤2:配置Oracle数据源 修改`xxl-job-admin/src/main/resources/application.properties`: ```properties # 数据源配置 spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/XE spring.datasource.username=xxl_job spring.datasource.password=your_password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver # 使用Oracle方言 spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect ``` ##### 步骤3:部署到Tomcat 1. 将WAR包放入`$TOMCAT_HOME/webapps/` 2. 启动Tomcat: ```bash $TOMCAT_HOME/bin/startup.sh ``` 3. 访问管理界面: ``` http://localhost:8080/xxl-job-admin ``` 默认账号:admin/123456 --- #### 三、Spring Boot嵌入容器部署 ##### 步骤1:修改POM文件 在`xxl-job-admin/pom.xml`中添加Oracle驱动: ```xml <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> ``` ##### 步骤2:配置数据源 创建`src/main/resources/bootstrap-oracle.properties`: ```properties spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/XE spring.datasource.username=xxl_job spring.datasource.password=your_password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect ``` ##### 步骤3:启动应用 ```bash mvn spring-boot:run -Dspring.profiles.active=oracle ``` --- #### 四、关键配置项说明 | 配置项 | 说明 | 示例 | |--------|------|--------| | `spring.datasource.url` | Oracle连接字符串 | `jdbc:oracle:thin:@//host:1521/service` | | `spring.jpa.database-platform` | Hibernate方言 | `Oracle12cDialect` | | `xxl.job.login.username` | 管理台账号 | `admin` | | `xxl.job.login.password` | 管理台密码 | `123456` | | `xxl.job.i18n` | 国际化配置 | `zh_CN` | --- #### 五、验证与排错 1. **检查数据源** 启动日志中搜索: ``` Loading class `oracle.jdbc.OracleDriver' Connected to Oracle Database ``` 2. **常见错误解决**: - **ORA-00942**: 表不存在 → 检查SQL脚本执行 - **方言不匹配**:确认使用`Oracle12cDialect` - **连接超**:检查防火墙和TNS配置 3. **调度中心配置执行器** 在管理界面添加执行器,地址指向您的Spring Boot应用: ```properties # 执行器配置(在Spring Boot应用中) xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin xxl.job.executor.appname=your-app ``` > 部署完成后,调度中心将自动通过Oracle数据库管理任务和日志[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值