Frage

Ich habe Tage für letzte mit diesem zu kämpfen. Ich versuche, einen DAO außerhalb des Behälters zu testen, aber während des Testfall ausgeführt werden erhalte ich die Fehlermeldung:

  

Fehler beim Erstellen der Bohne mit dem Namen   ‚SqlMapClient‘ definiert in der Klasse   Pfad Ressource   [ApplicationContext.xml]: Invocation   der Init-Methode scheiterte; verschachtelte   Ausnahme ist   java.lang.NoClassDefFoundError:   com / iplanet / ias / admin / common / ASException

Ich bin mit NB die Tests auszuführen. Leute haben gesagt, dass ich die oben Klasse muß in dem Laufzeitklassenpfad des Testfalls sein. Ich bin aber absolut nicht in der Lage zu finden, wo eigentlich das Glas ist ... ?? Ich habe alle enthalten, dass Gläser, die auf meinem Behälter sind Classpath + Gläser in meinen Projekten lib Ordner auf den Runtime-Classpath des Unit-Tests. Ich bekomme immer noch den gleichen Fehler.

googeln Auch für diese JAR hat nicht funktioniert entweder.

Vielleicht hat jemand da draußen weiß, woher dieses freakin Glas zu erhalten. Und hoffentlich, dass meine Probleme behoben.

War es hilfreich?

Lösung

Dies ist nicht direkt Ihre Frage beantworten, aber ich habe zwei Ratschläge. Erstens, jetzt, wo ich weiß, dass du Frühling verwenden, würde ich vorschlagen, auf Stop Ihre eigene ServiceLocator mit der JNDI-Datenquelle zum Nachschlagen, wie Sie in einem frühen Frage . Stattdessen sollten Sie Federeinrichtungen dafür verwenden und dann die Datenquelle in Ihre Bohnen injizieren. Um einen JDNI Datenquelle zu erhalten, verwenden Spring JndiObjectFactoryBean, etwas wie folgt aus:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:/comp/env/jdbc/myDS</value>
    </property>
</bean>

Wenn dann außerhalb des Behälters (in der Regel, wenn Tests ausgeführt wird) ausgeführt wird, wäre mein Rat an sein nicht ein JNDI-Datenquelle verwenden. Stattdessen sollten Sie Federeinrichtungen verwenden, um eine Datenquelle zu Ihrem DAOs auf andere Weise zur Verfügung zu stellen (zum Beispiel eines DriverManagerDataSource verwenden, brauchen Sie nicht eine echte Verbindung Pool, wenn Tests ausgeführt wird). Dies würde ermöglichen es Ihnen, Ihre Tests auszuführen, ohne dass iPlanet zu beginnen, das Gefühl für die Prüfung macht (und Sie nicht wollen, iPlanet den Verbindungspool testen, möchten Sie Ihre DAOs testen).

erstellen also eine applicationContext-test.xml während der Prüfung mit einer anderen Konfiguration für den Datenzugriff verwendet werden soll. Im Folgenden eine Beispielkonfiguration für die DriverManagerDataSource:

<bean id="dataSource"
         class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="..."/>
    <property name="url" value="..."/>
    <property name="username" value="..."/>
    <property name="password" value="..."/>
</bean>

Das ist wirklich der empfohlene Ansatz (überprüfen Sie die Kapitel Daten Zugriff JDBC mit , um weitere Informationen zu den verschiedenen Optionen).

PS: Ich habe keine Ahnung, woher com/iplanet/ias/admin/common/ASException herkommt, aber es ist offensichtlich einer der iPlanet selbst. Wenn Sie wirklich wollen, um herauszufinden, Suche in allen Gläsern Ihrer iPlanet installieren, vor allem die ein in seiner Startskript verwiesen. Aber ich denke, dass‘Sie danach JNDI Fragen konfrontiert werden, gewarnt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top