Итак, я использовал boxfuse для развертывания проекта Spring Boot для службы AWS EC2. все пошло нормально. Тем не менее, когда я получить доступ к своему веб-приложение, само приложение отображает исключение SQL:Spring-Boot на AWS с Boxfuse - PostgreSQL Exception
Error querying database. Cause: org.postgresql.util.PSQLEception:ERROR:relation "table" does not exist
Теперь веб-приложение делает следующее: он подключается к базе данных Psql и запрашивает некоторый материал на одном из столов. На моем локальном хосте все работает отлично. Теперь для развертывания webapp должен использовать базу данных AWS RDS Psql. Поэтому я изменил свойства приложения, чтобы перечислить данные доступа для RDS DB вместо локального и развернуто в облаке через boxfuse. По application.properties файла для весны выглядит следующим образом:
spring.datasource.url=jdbc:postgresql://ec2instance:portnumber/Database
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
В pom.xml файл весенних, соответствующие зависимости присутствуют
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1211</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-aws-jdbc -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-aws-jdbc</artifactId>
<version>1.1.3.RELEASE</version>
</dependency>
Что мне не хватает? Возможно, мне понадобилось вручную SSH в экземпляр BoxfuseEC2 для установки postgresql (может быть, это проблема?), Но я не могу использовать SSH из-за ограниченного доступа BoxFuse в пределах облачной среды.
boxfuse файл_журнал (последние строки) делает следующее:
2016-10-29 18:46:23.904 INFO 900 --- [nio-8080-exec-6] o.s.b.f.xml.XmlBeanDefinitionReader : Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
2016-10-29 18:46:24.052 INFO 900 --- [nio-8080-exec-6] o.s.jdbc.support.SQLErrorCodesFactory : SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase, Hana]
2016-10-29 18:46:24.096 ERROR 900 --- [nio-8080-exec-6] com.vaadin.server.DefaultErrorHandler :
org.springframework.jdbc.BadSqlGrammarException:
### Error querying database. Cause: org.postgresql.util.PSQLException: ERROR: relation "tablename" does not exist
Position: 14
### The error may exist in com/example/Service.java (best guess)
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT * FROM"tablename"ORDER BY x;
### Cause: org.postgresql.util.PSQLException: ERROR: relation "tablename" does not exist
Position: 14 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: relation "tablename" does not exist
Position: 14
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231) ~[spring-jdbc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73) ~[spring-jdbc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE]
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) ~[mybatis-spring-1.3.0.jar!/:1.3.0]
[.........]
Кто-нибудь есть идеи? Мне кажется, что это драйвер Postgresql + проблема с подключением Spring-boot + aws ... Может быть, что-то с mybatis? Kinda изо всех сил здесь.
Как правило, база данных заполняется буквально тысячами записей - с помощью ssh-туннелирования я могу подключиться с localhost к ней без каких-либо проблем. Из любого экземпляра EC2 я могу получить к нему доступ без каких-либо проблем и запросить все! –
Любая идея? Я потерял здесь полностью ... –
Если вы хотите использовать свою собственную существующую базу данных вместо автоматически созданной Boxfuse, проще всего отменить существующее приложение Boxfuse и воссоздать его с помощью '-db.type = none' (см. https://boxfuse.com/docs/payloads/springboot#databases) –