2009-08-13 68 views
2

我試圖讓JPA(Toplink)配置爲在從Maven插件運行的Jetty中運行,並得到一個javax.naming.NameNotFoundException。具體細節。在Jetty中配置JPA時遇到問題

web.xml中:

<persistence-unit-ref> 
    <persistence-unit-ref-name>persistence/mod</persistence-unit-ref-name> 
    <persistence-unit-name>ModPU</persistence-unit-name> 
</persistence-unit-ref> 

的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.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_1_0.xsd"> 
    <persistence-unit name="ModPU" transaction-type="RESOURCE_LOCAL"> 
    <provider>oracle.toplink.essentials.PersistenceProvider</provider> 
    <properties> 
     <property name="toplink.jdbc.url" value="jdbc:mysql://localhost/mod"/> 
     <property name="toplink.jdbc.user" value="user"/> 
     <property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver"/> 
     <property name="toplink.jdbc.password" value="pass"/> 
     <property name="toplink.ddl-generation" value="create-tables"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

代碼:

@PersistenceUnit(unitName = "ModPU") 
EntityManagerFactory emf; 

錯誤引用時電動勢:

Caused by: javax.naming.NameNotFoundException; remaining name 'persistence/ugc' 
    at org.mortbay.naming.NamingContext.lookup(NamingContext.java:634) 
    at org.mortbay.naming.NamingContext.lookup(NamingContext.java:665) 
    at org.mortbay.naming.NamingContext.lookup(NamingContext.java:665) 
    at org.mortbay.naming.NamingContext.lookup(NamingContext.java:680) 
    at org.mortbay.naming.java.javaRootURLContext.lookup(javaRootURLContext.java:112) 
    at javax.naming.InitialContext.lookup(InitialContext.java:392) 
    at com.sun.jersey.server.impl.container.servlet.ThreadLocalNamedInvoker.invoke(ThreadLocalNamedInvoker.java:65) 
    ... 37 more 

回答

0

我相信行:在你的web.xml

<persistence-unit-ref-name>persistence/mod</persistence-unit-ref-name> 

不需要的,應予刪除。