2008-09-14 4 views
1

Nous avons une application simple printemps-hibernate (console app) où nous avons mis le classpath dans le fichier manifeste du fichier jar exécutable. Et l'application se connecte à la base de données en utilisant le pilote jtds, Tout fonctionne comme prévu sur Windows machine et jdk1.6. Mais sur Linux, l'application est incapable de trouver le pilote, Nous exécutons le programme en utilisant java -jar MainClassNamejtds Aucune exception de pilote approprié lors de l'exécution d'un projet construit maven

Toutes les suggestions pourquoi cela pourrait se produire est grandement appréciée.

+0

Quelle erreur voyez-vous? Si c'est une NoClassDefError ou une ClassNotFoundException alors c'est probablement un problème de classpath. –

Répondre

0

Honnêtement, cela ressemble à un mauvais CLASSPATH. Une chose que je suggère de commencer à déboguer ce problème est de copier le paquet jtds sur le même chemin que vos paquets/classes principaux et de voir si cela fonctionne. De cette façon, vous pouvez vous assurer que le manifeste Classpath est ou n'est pas le problème. Le Spring/Hibernate repose sur le répertoire lib, donc il sera toujours sur classpath car c'est sa structure principale. Utilisez également le répertoire lib pour tester.

Espérons que ces directives vous aideront. Envoyez également plus d'informations, telles que les chemins, les chemins de classes et les fichiers manifestes.

+0

Fernando, Le classpath est généré par Maven dans le fichier manifeste et il fonctionne très bien sur Windows machine. Quoi qu'il en soit, je publierai l'entrée de chemin de classe dans le fichier manifeste le lundi. –

2

Ce problème est survenu parce que notre fichier jdbc.url avait une adresse URL invalide. Cela était dû au fait que maven traite la propriété jdbc.url comme une propriété spéciale et lors du profilage, au lieu de l'URL définie dans filter.properties. Et c'est la raison "No Driver convenable" exception. La question aurait dû être plus claire. De toute façon, nous avons dû renommer les propriétés jdbc.url en jdbc.url.somename. Cela a résolu notre problème avec le profilage Maven. Nous avons également rencontré un problème similaire de profilage maven pour une propriété appelée "server.name" Cette propriété de filtre était également source de confusion pour le profilage maven. Nous avons aussi dû changer le nom de cette propriété.

Merci encore Fernando.

Questions connexes