سؤال

لقد كنت تكافح مع هذا لمدة يومين الماضيين. أحاول اختبار DAO خارج الحاوية ولكن أثناء تشغيل حالة الاختبار، أحصل على الخطأ:

خطأ في إنشاء الفاصوليا مع اسم "SQLMAPClient" محددة في مورد مسار الفئة [ApplicationContext.xml]: فشل الاحتجاز من طريقة INIT؛ استثناء متداخل هو java.lang.noclassdeffoundrror: COM / IPLANET / IAS / ADMIN / COMMOR / ASEXAGPECTE

أنا أستخدم NB لتشغيل الاختبارات. لقد قول الناس أنني بحاجة إلى الفصل أعلاه لتكون في مسار تشغيل الوقت في حالة الاختبار. ومع ذلك، أنا غير قادر تماما على العثور على المكان الذي توجد فيه جرة في الواقع ... ؟؟ لقد قمت بتضمين كل تلك الجرار الموجودة على حاويات Classpath + Jars في مجلد مشاريع Lib الخاص بي إلى Classpath Classpath في اختبار الوحدة. لا يزال أحصل على نفس الخطأ.

أيضا googling لهذا الجرة لم يعمل أيضا.

ربما شخص ما يعرف مكان الحصول على هذا جرة freakin من. ونأمل أن إصلاح مشاكلي.

هل كانت مفيدة؟

المحلول

هذا لا يجيب على سؤالك مباشرة ولكن لدي نصيحة. أولا، الآن أنني أعرف أنك تستخدم الربيع، أود أن أقترح قف باستخدام الخاصة بك ServiceLocator للبحث عن DataSource JNDI كما ذكرت في السابق سؤال. وبعد بدلا من ذلك، يجب عليك استخدام مرافق الربيع لذلك ثم حقن DataSource في فاصوليك. للحصول على DataSource JDNI، استخدم الربيع JndiObjectFactoryBean, ، شئ مثل هذا:

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

ثم، عند تشغيل خارج الحاوية (عادة عند تشغيل الاختبارات)، ستكون نصيحتي ليس استخدم مصدر بيانات JNDI. بدلا من ذلك، يجب عليك استخدام مرافق الربيع لتوفير بيانات DataSource الخاصة بك بطريقة أخرى (مثل استخدام DriverManagerDataSource, ، لا تحتاج إلى تجمع اتصال حقيقي عند تشغيل الاختبارات). هذا من شأنه أن يسمح لك بتشغيل الاختبارات الخاصة بك دون الحاجة إلى بدء تشغيل iPlanet مما يجعل الشعور بالاختبار (وأنت لا تريد اختبار تجمع اتصال Iplanet الخاص بك، فأنت تريد اختبار DAOS الخاص بك).

لذلك، إنشاء applicationContext-test.xml لاستخدامها أثناء الاختبار مع تكوين آخر للوصول إلى البيانات. أدناه، تكوين عينة ل 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>

هذا هو حقا النهج الموصى به (حدد الفصل الوصول إلى البيانات باستخدام JDBC لمزيد من التفاصيل حول الخيارات المختلفة).

ملاحظة: ليس لدي أي فكرة عن مكان com/iplanet/ias/admin/common/ASException يأتي من ولكن من الواضح أنه واحد من iplanet نفسه. إذا كنت ترغب حقا في معرفة ذلك، فابحث في جميع الجرار تثبيت IPLANET الخاص بك، وخاصة المرحلة المشار إليها في البرنامج النصي لبدء التشغيل. لكنني أعتقد أنه "ستواجه قضايا JNDI بعد ذلك، تحذر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top