Nie można zaimportować persystencji.xml do pliku applicationContext.xml


Używam Eclipse Juno IDE
Mam aplikację Java, która ma folder src. w folderze mam:
1) applicationContext.xml
2) persistence.xml
Mam też DBInterface i zaimplementowałem go z JPA.
Teraz w pliku applicationContext.xml mam bean do zaimplementowania JPA.
Kiedy próbowałem wstrzyknąć fasolę, pojawił się wyjątek, który brzmiał: „Nie znaleziono dostawcy trwałości”.
Więc próbowałem zaimportować plik trwałości do pliku applicationContext, ale dostałem inny wyjątek.

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="[url=http://www.springframework.org/schema/beans"]http://www.springframework.org/schema/beans"[/url]
xmlns:xsi="[url=http://www.w3.org/2001/XMLSchema-instance"]http://www.w3.org/2001/XMLSchema-instance"[/url]
xmlns:aop="[url=http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:context="[url=http://www.springframework.org/schema/context/spring-context-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:flow="[url=http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:jms="[url=http://www.springframework.org/schema/jms/spring-jms-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:jee="[url=http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:lang="[url=http://www.springframework.org/schema/lang/spring-lang-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:osgi="[url=http://www.springframework.org/schema/osgi/spring-osgi.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:tx="[url=http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:util="[url=http://www.springframework.org/schema/util/spring-util-2.5.xsd"]http://www.springframework.org ... ot%3B[/url]
xmlns:p="[url=http://www.springframework.org/schema/p"]http://www.springframework.org/schema/p"[/url] xsi:schemaLocation="[url=http://www.springframework.org/schema/beans]http://www.springframework.org/schema/beans[/url] [url=http://www.springframework.org/schema/beans/spring-beans-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/aop/spring-aop-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/aop/spring-aop-2.5.xsd/spring-spring-aop-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/context/spring-context-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/context/spring-context-2.5.xsd/spring-spring-context-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd]http://www.springframework.org ... 0.xsd[/url] [url=http://www.springframework.org/schema/webflow-config/spring-webflow-config-1.0.xsd/spring-spring-webflow-config-1.0.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/jms/spring-jms-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/jms/spring-jms-2.5.xsd/spring-spring-jms-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/jee/spring-jee-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/jee/spring-jee-2.5.xsd/spring-spring-jee-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/lang/spring-lang-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/lang/spring-lang-2.5.xsd/spring-spring-lang-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/osgi/spring-osgi.xsd]http://www.springframework.org ... i.xsd[/url] [url=http://www.springframework.org/schema/osgi/spring-osgi.xsd/spring-spring-osgi.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/tx/spring-tx-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/tx/spring-tx-2.5.xsd/spring-spring-tx-2.5.xsd-2.5.xsd]http://www.springframework.org ... 5.xsd[/url]
[url=http://www.springframework.org/schema/util/spring-util-2.5.xsd]http://www.springframework.org ... 5.xsd[/url] [url=http://www.springframework.org/schema/util/spring-util-2.5.xsd/spring-spring-util-2.5.xsd-2.5.xsd">]http://www.springframework.org ... gt%3B[/url]
<bean id="JPA" class="pack.jpa.JPAQueries"/>
<import resource="persistence.xml"/>
</beans>


persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xsi:schemaLocation="[url=http://java.sun.com/xml/ns/persistence]http://java.sun.com/xml/ns/persistence[/url] [url=http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"]http://java.sun.com/xml/ns/per ... ot%3B[/url]
xmlns:xsi="[url=http://www.w3.org/2001/XMLSchema-instance"]http://www.w3.org/2001/XMLSchema-instance"[/url]
xmlns="[url=http://java.sun.com/xml/ns/persistence"]http://java.sun.com/xml/ns/persistence"[/url] version="1.0">
<persistence-unit transaction-type="RESOURCE_LOCAL" name="MyJPA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>pack.bl.Travels</class>
<class>pack.bl.Example</class>
<properties> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/taxis"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
</properties>
</persistence-unit>


mainClass

public class Program {/**
* @param args
*/
public static void main(String[] args) { ApplicationContext context = new
ClassPathXmlApplicationContext("applicationContext.xml");
DBInterface dao = (DBInterface)context.getBean("JPA",JPAQueries.class); dao.retrieveRecords();
}


Wyjątek

Exception in thread "main" 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration
problem: Failed to import bean definitions from relative location [persistence.xml]Offending resource: class path resource [applicationContext.xml]; nested exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration
problem: Unable to locate Spring NamespaceHandler for XML schema namespace
[[url=http://java.sun.com/xml/ns/persistence]http://java.sun.com/xml/ns/persistence[/url]]Offending resource: class path resource [persistence.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:271)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:196)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:181)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at pack.program.Program.main(Program.java:16)Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [[url=http://java.sun.com/xml/ns/persistence]http://java.sun.com/xml/ns/persistence[/url]]Offending resource: class path resource [persistence.xml]at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:317)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1421)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:190)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:255)... 20 more

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Próba użycia
persistence.xml
jako konfiguracji Springa nie ma absolutnie żadnego sensu, ponieważ
persistence.xml
nie jest konfiguracją Spring.
Jeśli chcesz używać JPA ze Spring, musisz umieścić
persistence.xml
w folderze
META-INF
wewnątrz folderu źródłowego i zadeklarować
LocalContainerEntityManagerFactory
w
applicationContext.xml
:
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name = "persistenceUnitName" value = "MyJPA"/>
</bean>

Następnie możesz wstrzyknąć
EntityManager
do swojego Spring bean za pomocą
@PersistenceContext
:
@PersistenceContext
private EntityManager em;


Zobacz też

:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Powinien zostać zaimportowany w następujący sposób:
<import resource="classpath:META-INF/persistence.xml"/>

załóżmy, że persistence.xml znajduje się w katalogu META-INF, który jest katalogiem najwyższego poziomu w jednym z twoich plików jar w ścieżce klas.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Ok, rozwiązałem ten problem ..
Co zrobiłem, aby umieścić plik persistence.xml w folderze meta-INF
jak sugerowali Vikdor i Axtavt. ale w kontekście aplikacji nie zaimportowałem żadnych plików.
właśnie to napisałem
<bean id="JPA" class="pack.jpa.JPAQueries"/>

i jego praca!

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się