الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]مشكلة في اختبار مشروع Spring+hibernate

بدأه أحمد أبو عبد البر في 22 فبراير 2014 · 4 رد · 1,258 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

 

منذ ليلتين وأنا أحاول فهم السبب في هذه المشكلة ولم أفلح

هذا ملف persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="eCommerce" transaction-type="RESOURCE_LOCAL">
	<provider>org.hibernate.ejb.HibernatePersistence</provider>
	<exclude-unlisted-classes>false</exclude-unlisted-classes>
	<properties>

	      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
	      <property name="hibernate.hbm2ddl.auto" value="update"/>
	</properties>
      </persistence-unit>
</persistence>

وهذا ملف appContext.xml

وهذا ملف الاختبار

package com.test;


import static org.junit.Assert.assertTrue;

import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 *
 * @author ahmed
 */
public class NewEmptyJUnitTest
{

      private ClassPathXmlApplicationContext myClass;

      

      @Test
      public void test1()
      {
	try
	{
	      setMyClass(new ClassPathXmlApplicationContext(
		  new String[]
		  {
		        "appContext.xml"
		  }));

	      assertTrue(true);
	} catch (Exception e)
	{
	      assertTrue(e.getMessage() , false);
	}

      }

      public ClassPathXmlApplicationContext getMyClass()
      {
	return myClass;
      }

      public void setMyClass(ClassPathXmlApplicationContext myClass)
      {
	this.myClass = myClass;
      }
}

وهذه رسالة الخطأ عند إجراء الاختبار ب JUint

Error creating bean with name 'persistenceUnitManager' defined in class path resource [appContext.xml]: Cannot resolve reference to bean 'dataSource' while setting bean property 'defaultDataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [appContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.mysql.jdbc.Driver]
java.lang.AssertionError
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.mysql.jdbc.Driver]
	at org.junit.Assert.fail(Assert.java:93)
	at org.junit.Assert.assertTrue(Assert.java:43)
	at com.test.NewEmptyJUnitTest.test1(NewEmptyJUnitTest.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
	at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
	at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
	at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)

هل فاتني شيء ؟

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 22 فبراير 2014 في 01:26

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#2

الملف appContext في المرفقات

 

appContext.xml

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#3

و عليكم السلام

 

مالهدف من برنامجك ؟

و إذا كان الهدف هو التعامل مع Hibernate و Spring فلماذا تستخدم EJB ؟ و ماهو محتوى الـ ejbModule ؟

تم تعديل هذه المشاركة بواسطة Snack3r في 22 فبراير 2014 في 01:41

1
#4

السلام عليكم ...

يوجد الكثير من الـــ nested Exceptions  آخرها عدم وجود الصف (com.mysql.jdbc.Driver) ... هل قمت بإضافة ملف الــ jar  الخاص بالـــ MySQL JDBC  (يسمى MySQL Connector/J) إلى مشروعك ؟

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

سلام عليكم

 

شكرا لكم

 

لقد تم حل المشكلة وكان سببها أن أحد الحقول يجب أن يرتبط بحقل آخر OneToMany ولكني لم أضع Annotation خاصة بذلك فوق الحقل ، ولم أربطه بالحقل الآخر

والعجيب أن jUnit لم يطلعني على المشكلة لما استعملت assertTrue ولكن لما حذفتها وجعت آلة الجافا هي التي تقذف الاستثناءات تبين المشكل

 

@Snacker

الهدف تعلمي تدريبي على إنشاء موقع مبيعات

أنا لم أستعمل EJB  بل Spring  ولكني استعملت الملف persistence.xml ولم أستعمل الملف الخاص بإعدادات hibernate وأظن أن في الأمر سعة

 

 

@حسام

المشروع مبني على maven وكل الاحتياجات قد تم إضافته وقد تبين سبب المشكلة والحمد لله

 

 

شكرا لكما كثيرا

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 22 فبراير 2014 في 14:12

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

مواضيع مشابهة