Как получить доступ к моей локальной базе данных MySQL из Cloud Foundry?Как получить доступ к моей локальной базе данных MySQL с помощью Boot из Cloud Foundry?
Я создал приложение для загрузки Spring Boot из STS-3.8.2 выполнить операцию Crud, которая отлично работает в локальной среде. При развертывании в облачный литейный цех остальной вызов с простой работой работает нормально. Но когда я называю отдых для выполнения операции Crud, он говорит:
Не удалось открыть соединение; Вложенное исключение - org.hibernate.exception.JDBCConnectionException: Не удалось открыть соединение
Пожалуйста, помогите мне решить проблему.
Ссылки на CloudFoundry где развертывается моя весна BOOT APPLICATION
- http://gs-sts-cloud-foundry-deployment-ravisoniboot.cfapps.io/greeting
- http://gs-sts-cloud-foundry-deployment-ravisoniboot.cfapps.io/list
Выше, одна ссылка на приветственное сообщение, 2-й для работы сырого, чтобы получить список из MySQL в моем ноутбук.
SpringBootAndMySqlApplication.java:
@SpringBootApplication
public class SpringBootAndMySqlApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAndMySqlApplication.class, args);
}
}
HomeController.java:
@RestController
public class HomeController {
@Autowired
private TaskDao taskDao;
@RequestMapping("/greeting")
public String greeting() {
return "Welcome to Boot + SQL";
}
@RequestMapping("/list")
public List<TaskEntity> taskList() {
return taskDao.findByTaskArchived(0);
}
}
TaskDao.java:
public interface TaskDao extends CrudRepository<TaskEntity, Integer> {
List<TaskEntity> findByTaskArchived(Integer tas);
}
TaskEntity.java:
@Entity
@Table(name = "task_list")
public class TaskEntity
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "task_id")
private int id;
@Column(name = "task_name")
private String taskName;
@Column(name = "task_description")
private String taskDescription;
@Column(name = "task_priority")
private String taskPriority;
@Column(name = "task_status")
private String taskStatus;
@Column(name = "task_archived")
private int taskArchived = 0;
// getter & setter
}
application.properties:
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/taskmanager
spring.datasource.username = root
spring.datasource.password = root
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.datasource.driverClassName = com.mysql.jdbc.Driver
MySQL скрипт:
create database taskmanager;
use taskmanager;
create table task_list(task_id int not null auto_increment, task_name varchar(100) not null, task_description text,task_priority varchar(20),task_status varchar(20),task_start_time datetime not null default CURRENT_TIMESTAMP,task_end_time datetime not null default CURRENT_TIMESTAMP,task_archived bool default false,primary key(task_id));
insert into task_list values(1,'Gathering Requirement','Requirement Gathering','MEDIUM','ACTIVE',curtime(),curtime() + INTERVAL 3 HOUR,0);
insert into task_list values(2,'Application Designing','Application Designing','MEDIUM','ACTIVE',curtime(),curtime() + INTERVAL 2 HOUR,0);
insert into task_list values(3,'Implementation','Implementation','MEDIUM','ACTIVE',curtime(),curtime() + INTERVAL 3 HOUR,0);
insert into task_list values(4,'Unit Testing','Unit Testing','LOW','ACTIVE',curtime(),curtime() + INTERVAL 4 HOUR,0);
insert into task_list values(5,'Maintanence','Maintanence','LOW','ACTIVE',curtime(),curtime() + INTERVAL 5 HOUR,0);
select * from task_list;
Созданы выше приложения загрузки пружинной в STS и выполнить перетаскивание в CloudFoundry из BootDashBoard в STS. И толкнул успешно. Теперь я могу получить доступ к моему приложению из определенного хоста в файле YML. Но когда я пытаюсь назвать мой отдых, чтобы выполнить операцию crud, это не работает.
Любое решение?
Не могли бы вы высказать полную ошибку в стеке стека ?. Не могли бы вы разместить оба соединения о конфигурации 'JdbcTemplate' и' Datasource' от локальных и 'CF'? Что-то должно быть там ... –