0

所以我在 Spring WS 中实现 JPA 和 Hibernate 时遇到了这个问题。
我已经正确配置了所有内容,并且根据教程它应该可以工作 - 但事实并非如此。
问题在于persistance.xml,这里是它的样子:

<persistence 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/persistance_1_0.xsd"
            version="1.0">

    <persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="none" />
        </properties>
    </persistence-unit>
</persistence>

我得到的例外是:

Caused by: java.io.FileNotFoundException: class path resource [persistence_1_0.xsd] cannot be resolved to URL because it does not exist
    at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:177)
    at org.springframework.orm.jpa.PersistenceUnitReader.validateResource(PersistenceUnitReader.java:281)
    at org.springframework.orm.jpa.PersistenceUnitReader.readPersistenceUnitInfos(PersistenceUnitReader.java:108)
    ... 57 more

我一直在努力解决这个问题......有人知道我错过了什么吗?

4

2 回答 2

1

您需要包含包含 persistence_1_0.xsd 的适当 jar 文件。

这在这里解释。

xsi:schemaLocation 有什么用?

于 2012-12-04T11:41:07.800 回答
0

.xsd 文件的 url 中有一个类型。尝试使用:http: //java.sun.com/xml/ns/persistence/persistence_1_0.xsd。调试这些类型问题的一个好方法是尝试在浏览器中点击 url,成功的请求表示有效的链接。

<persistence 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_1_0.xsd"
            version="1.0">

    <persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="none" />
        </properties>
    </persistence-unit>
</persistence>

您确保您的项目名称不包含任何空格,项目的路径也不应包含任何空格。这会在 Hibernate 实体管理器中产生错误。

于 2012-12-04T10:46:28.090 回答