2017-10-03 2 views
-1

J'ai essayé de le faire pendant un certain temps, j'ai une application d'administration et de l'application principale donc la seule communication entre eux est de retour à la liste des livresComment partager une base de données h2 entre deux applications?

  <img class="image-responsive shelf-book" th:src="#{adminPath}[email protected]{/image/book/}+${book.id}+'.png'" width="100px" /> 

de sorte que le chemin admin est ici l'URL l'administrateur, mais comme ils ne partagent pas la même base de données je ne peux pas voir les livres dans mon application principale

Je pensais serveur de printemps de nuage, mais n'a pas fonctionné, des suggestions s'il vous plaît?

quand j'ajouté cette

jdbc.driverClassName=org.h2.Driver 
spring.datasource.url=jdbc:h2:mem:test:MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE 
spring.datasource.username=sa 
spring.datasource.password= 

J'ai eu cette erreur

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLException: Feature not supported: "autoServerMode && inMemory" [50100-196] 
     at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
     at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute(DatabasePopulatorUtils.java:46) ~[spring-jdbc-4.3.4.RELEASE.jar:4.3.4.RELEASE] 
     ... 63 common frames omitted 
I added this below to both application and one app is running but the show this error 
jdbc.driverClassName=org.h2.Driver 
spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE 
spring.datasource.username=sa 
spring.datasource.password= 




Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-196] 

Et je l'ai déjà supprimé les scripts d'une application des suggestions quant à la raison pour laquelle son je les veux dire la base de données en cours d'utilisation à partager la base de données

Répondre

1

Dans le fichier de configuration des deux applications, vous devez indiquer:

spring.datasource.url = jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE

test est le nom de votre base de données.

Si vous utilisez Hibernate, ne pas oublier aussi d'avoir:

spring.jpa.hibernate.ddl-auto = update

+0

serveur automatique - true affiche et l'erreur, et une autre question que je utilise des scripts – valik

+0

Vous obtenez une erreur parce que vous avez ' mem' dans votre URL qui signifie 'en mémoire'. Comme l'erreur indique: 'Fonction non prise en charge:" autoServerMode && inMemory "'. Je vous suggère d'avoir des scripts DDL dans une seule application. – sedooe

+0

ouais je l'ai fait maintenant et il donne une nouvelle erreur en disant base de données déjà utilisée – valik