Il carattere jolly corrispondente è rigoroso, ma non è ansible trovare alcuna dichiarazione per l’elemento ‘tx: annotation-driven’

Sto cercando di configurare JSF + Spring + hibernate e sto cercando di eseguire un test ma quando uso questo “tx: annotation-driven” sul mio file application-context.xml, ottengo questo errore:

Il carattere jolly corrispondente è rigoroso, ma non è ansible trovare alcuna dichiarazione per l’elemento ‘tx: annotation-driven’

Ecco il mio application-context.xml:

            om.mycompany.model.Course om.mycompany.model.Student om.mycompany.model.Teacher     org.hibernate.dialect.OracleDialect           

ed ecco il mio CourseServiceImplTest. Non ho ancora implementato i test:

 public class CourseServiceImplTest { private static ClassPathXmlApplicationContext context; private static CourseService courseService; public CourseServiceImplTest() { } @BeforeClass public static void setUpClass() throws Exception { context=new ClassPathXmlApplicationContext("application-context.xml"); courseService=(CourseService) context.getBean("courseService"); } @AfterClass public static void tearDownClass() throws Exception { context.close(); } @Before public void setUp() { } @After public void tearDown() { } /** * Test of getAllCourses method, of class CourseServiceImpl. */ @Test public void testGetAllCourses() { System.out.println("getAllCourses"); CourseServiceImpl instance = new CourseServiceImpl(); List expResult = null; List result = instance.getAllCourses(); assertEquals(expResult, result); // TODO review the generated test code and remove the default call to fail. fail("The test case is a prototype."); } /** * Test of getCourse method, of class CourseServiceImpl. */ @Test public void testGetCourse() { System.out.println("getCourse"); Integer id = null; CourseServiceImpl instance = new CourseServiceImpl(); Course expResult = null; Course result = instance.getCourse(id); assertEquals(expResult, result); // TODO review the generated test code and remove the default call to fail. fail("The test case is a prototype."); } 

ed ecco il CourseServiceImpl:

 @Service("courseService") @Transactional public class CourseServiceImpl implements CourseService{ @Autowired private SessionFactory sessionFactory; @Override public List getAllCourses() { return sessionFactory.getCurrentSession().createQuery("from Course").list(); } @Override public Course getCourse(Integer id) { return (Course) sessionFactory.getCurrentSession().get(Course.class, id); } @Override public void save(Course course) { sessionFactory.getCurrentSession().saveOrUpdate(course); } } 

Hai alcuni errori nel tuo appcontext.xml:

  • Usa * -2.5.xsd

     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" 
  • Errori di battitura in tx:annotation-driven e context:component-scan (. Invece di -)

       

Questo è per gli altri (come me :)). Non dimenticare di aggiungere la molla tx jar / maven dependency. Anche la corretta configurazione in appctx è:

 xmlns:tx="http://www.springframework.org/schema/tx" 

xsi:schemaLocation="http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"

, per errore configurazione errata che altri potrebbero avere

 xmlns:tx="http://www.springframework.org/schema/tx/spring-tx-3.1.xsd" 

cioè, extra “/spring-tx-3.1.xsd”

xsi:schemaLocation="http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"

in altre parole, ciò che è presente in xmlns (spazio dei nomi) dovrebbe avere una mapping corretta in schemaLocation (namespace vs schema).

lo spazio dei nomi qui è: http://www.springframework.org/schema/tx

schema Doc Of namespace è: http://www.springframework.org/schema/tx/spring-tx-3.1.xsd

questo schema di namespace in seguito viene mappato in jar per individuare il percorso di xsd effettivo che si trova in org.springframework.transaction.config

Per me la cosa che ha funzionato è stata l’ordine in cui gli spazi dei nomi sono stati definiti nel tag xsi: schemaLocation: [poiché la versione era buona e anche il gestore delle transazioni era già]

L’errore era con:

  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/tx http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" 

E RISOLTO CON:

 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" 

Nel mio caso questo era in realtà un sintomo del server, ospitato su AWS, privo di un IP per la rete esterna. Tenterebbe di scaricare gli spazi dei nomi da springframework.org e non riuscirà a stabilire una connessione.

FWIW Ho avuto lo stesso problema. Ho scoperto le mie xsi: le voci schemaLocation non erano corrette, quindi sono andato ai documenti ufficiali e ho incollato il loro nel mio:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/transaction.html sezione 16.5.6

Ho dovuto aggiungere un altro paio ma andava bene. Il prossimo è scoprire perché questo ha risolto il problema …

Assicurati che la versione Spring e la versione xsd siano entrambe uguali. Nel mio caso sto usando Spring 4.1.1 quindi il mio all xsd dovrebbe essere la versione * -4.1.xsd

Una barra in più (/) davanti a tx e il file * .xml mi ha turbato per 8 ore !!

Errore mio:

 http://www.springframework.org/schema/tx/ http://www.springframework.org/schema/tx/spring-tx-4.3.xsd 

Correzione:

 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd 

In effetti un personaggio in meno / più riesce a mantenere i programmatori occupati per ore!

Sto imparando da udemy. Ho seguito ogni passaggio che il mio istruttore mi mostra di fare. Nella sezione grezza di mvc in spring durante l’impostazione dell’ambiente di sviluppo ho avuto lo stesso errore per:

  and  

poi ho appena sostituito

  http://www.springframework.org/schema/mvc/spring-mvc.xsd 

con

  http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 

e

  http://www.springframework.org/schema/tx/spring-tx.xsd 

con

  http://www.springframework.org/schema/tx/spring-tx-4.2.xsd 

in realtà ho visitato questi due siti http://www.springframework.org/schema/mvc/ e http://www.springframework.org/schema/tx/ e ho appena aggiunto l’ultima versione di spring-mvc e spring-tx ie , spring-mvc-4.2.xsd e spring-tx-4.2.xsd

Quindi, suggerisco di provare questo. Spero che questo ti aiuti. Grazie.

 Any one can help for me!!!!!!!!!   (ERROR OCCUR)  (ERROR OCCUR)               classpath:hibernate.cfg.xml   org.hibernate.cfg.AnnotationConfiguration    ${org.hibernate.dialect.MySQLDialect} true       (ERROR OCCUR)