Έχω αρκετά κόκκα συνεδρίας για τα οποία έχω γράψει τεστ μονάδας. Έχω ρυθμίσει το Maven για να συμπεριλάβει ένα persistence.xml στον κατάλογο src / main / resources / META-INF που αναφέρεται σε μια τοπική βάση δεδομένων MySQL για αναπτυξιακούς σκοπούς. Έχω έναν άλλο persistence.xml στον κατάλογο src / test / resources / META-INF που αναφέρεται στην ενσωματωμένη βάση δεδομένων Derby __default. Οι δοκιμές αναπτύσσονται σε ένα ενσωματωμένο δοχείο GlassFish 3.1.
Ωστόσο, όταν εκτελώ τις δοκιμές, λαμβάνω το ακόλουθο σφάλμα:
java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'jdbc/mylog'
Το jdbc / mylog είναι η βάση δεδομένων MySQL στην οποία αναφέρεται η μονάδα επιμονής στον κύριο κατάλογο. Προφανώς αγνοεί τη μονάδα επιμονής στον κατάλογο δοκιμών, αλλά δεν έχω ιδέα για το γιατί.
Ο Maven ρυθμίζει το classpath σωστά όσο μπορώ να πω, με δοκιμές-τάξεις πριν από τα μαθήματα και μια ματιά στον πραγματικό στόχο / Ο κατάλογος test-class / META-INF αποκαλύπτει ότι αντιγράφει τη σωστή, ενσωματωμένη μονάδα Derby, εμμονής.
[DEBUG] Test Classpath :
[DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\test-classes
[DEBUG] C:\Users\Laurens\Documents\Projects\Mylog\target\classes
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\eclipselink\2.2.0\eclipselink-2.2.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\javax.persistence\2.0.3\javax.persistence-2.0.3.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\eclipse\persistence\org.eclipse.persistence.jpa.modelgen.processor\2.2.0\org.eclipse.persistence.jpa.modelgen.processor-2.2.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\org\glassfish\extras\glassfish-embedded-all\3.1\glassfish-embedded-all-3.1.jar
[DEBUG] C:\Users\Laurens\.m2\repository\javax\javaee-web-api\6.0\javaee-web-api-6.0.jar
[DEBUG] C:\Users\Laurens\.m2\repository\junit\junit\4.8.1\junit-4.8.1.jar
Οποιαδήποτε υπόδειξη για το πώς να χρησιμοποιήσει το GlassFish τη σωστή μονάδα ανθεκτικότητας εκτιμάται πολύ! Ευχαριστώ!