jpa – 必须在ConnectionDriverName属性“如何解决它?”中指定J
发布时间:2020-12-14 23:44:50 所属栏目:Java 来源:网络整理
导读:概述:这是我的第一篇Websphere 7 Server amp; JPA 1.0 EJB德比数据库. First : My data source name is EJB3BANK my target database is SHOP . 第二:这是persistence.xml文件 ?xml version="1.0" encoding="UTF-8"?persistence version="1.0"xmlns="http:
概述:这是我的第一篇Websphere 7 Server& amp; JPA 1.0& EJB&德比数据库.
第二:这是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="ShopJPA" transaction-type="JTA"> <jta-data-source>jdbc/EJB3BANK</jta-data-source> <non-jta-data-source>jdbc/EJB3BANK</non-jta-data-source> <properties> <property name="openjpa.jdbc.Schema" value="SHOP" /> </properties> </persistence-unit> </persistence> 第三:Item实体Class的部分代码 @Entity @Table(schema = "SHOP",name = "ITEM") @NamedQuery(name = "getItem",query = "SELECT i FROM Item i") public class Item{...} 第四:这里是业务类CartBean,这里是问题的开始 @Stateful CartBean implements Cart{ .... .... public List<Item> getItems() { javax.persistence.Query query = em.createNamedQuery("getItem");//the problem here return query.getResultList(); } } 这是错误消息:必须在ConnectionDriverName属性中指定JDBC驱动程序或DataSource类名. 解决方法
如果您通过JNDI名称引用数据源,则不需要使用openjpa.ConnectionDriverName属性.
导致此问题的一个可能原因是persistence.xml位于错误的位置.该文件必须位于[类上下文] / META-INF的根目录.对于.war文件,内容应类似于: (foo.war) WEB-INF/classes/META-INF/persistence.xml WEB-INF/classes/com/foo123/jpa/Project.class WEB-INF/web.xml index.jsp 对于.war文件中打包的库.jar文件: (foo.war) WEB-INF/lib/my-library.jar WEB-INF/web.xml index.jsp (my-library.jar) META-INF/persistence.xml com/foo123/jpa/Project.class (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |