12
votes

Démarrez la base de données H2 en mode serveur via le ressort

J'essaie de démarrer la base de données H2 dans MODE SERVER (Je veux qu'il fonctionne dans un processus différent) via le ressort. J'utilise actuellement Java Runnable.exec pour lancer la base de données H2 (à l'aide de la commande: " java -cp h2.jar org.h2.tools.server ")

Je sais qu'il y a un moyen de le faire via le printemps. J'ai essayé d'ajouter ce qui suit à la configuration de printemps, mais cela n'a pas fonctionné (il n'a pas démarré la base de données H2): xxx

J'apprécierais toute aide / idées


0 commentaires

3 Réponses :


1
votes

Êtes-vous sûr que la méthode CreateTetCserver dans le serveur est vraiment appelée? Avez-vous essayé de mettre en place un point d'arrêt là-bas?

Tutoriel H2 prétend que vous comment vous Peut créer et démarrer le serveur de manière programmatique: xxx

Votre définition de printemps semble imiter la même initialisation. Mais vous pouvez toujours essayer de le faire manuellement - peut-être que c'est une faute dans la configuration de printemps.

EDIT:

J'ai essayé votre configuration et cela fonctionne pour moi. Qu'est-ce qui vous fait penser que le serveur n'est pas démarré? Il n'imprime rien sur STDOUT, mais le processus écoute au port 8043. Donc, il semble assez correct.


0 commentaires

11
votes

Vous avez-vous:

<beans default-lazy-init="true" ...


1 commentaires

J'ai changé la configuration des haricots en lazy-init = "False". Ça fonctionne maintenant. Merci!



3
votes

Récemment, je devais faire la même configuration pour effectuer un test d'unité et vérifier des données, cela fonctionne pour moi (printemps 3.1.4). Ensuite, il vous suffit de vous connecter avec JDBC: H2: TCP: // localhost: 8043 / MEM: Testez et assurez-vous de mettre un moment (vrai) {} à la fin de votre test.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.h2.Driver"/>
    <!--property name="url" value="jdbc:h2:mem:;TRACE_LEVEL_FIlE=4"/-->
    <property name="url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"/>
    <property name="username" value="sa"/>
    <property name="password" value=""/>
</bean>
<bean class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop">
    <constructor-arg>
        <array>
            <value>-tcp</value>
            <value>-tcpAllowOthers</value>
            <value>-tcpPort</value>
            <value>8043</value>
        </array>
    </constructor-arg>
</bean>


0 commentaires