2011-02-09 41 views
1

我得到这个例外在运行如提到的EJB,EAR和Web项目名称的动态Web项目DeploymentException,同时部署远程EJB

Error installing to Real: name=vfsfile:/C:/jboss-5.0.1.GA_1/jboss-5.0.1.GA/server/default/deploy/BookMartEAR.ear/ state=PreReal mode=Manual requiredState=Real 
org.jboss.deployers.spi.DeploymentException: Error deploying BookMartEJB.jar: Container jboss.j2ee:ear=BookMartEAR.ear,jar=BookMartEJB.jar,name=BookMartBean,service=EJB3 failed to resolve persistence unit BookMartEjb 
. 
. 
. 
Caused by: java.lang.IllegalArgumentException: Can't find a persistence unit named 'BookMartEjb' in [email protected]{vfsfile:/C:/jboss-5.0.1.GA_1/jboss-5.0.1.GA/server/default/deploy/BookMartEAR.ear/BookMartEJB.jar/} 

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="BookMartEJB" transaction-type="JTA"> 
     <jta-data-source>MySqlDS</jta-data-source> 
     <class>com.misys.book.Book</class> 
     <class>com.misys.book.Sale</class> 
     <class>com.misys.book.Saleitem</class> 
     <class>com.misys.book.Customer</class> 
     <class>com.misys.book.User</class> 
    </persistence-unit> 
</persistence> 

是有这个xml文件的任何问题? 我使用的是JBoss AS服务器和MySql数据库。

请建议,我可以出了问题。此外,请告知是否需要其他信息。

回答

2

什么在你的EAR persistence.xml的位置?它应该位于EJB模块的META-INF文件夹内。如果它不在那里(例如它在EAR根目录或Web模块中),那么它确实无法找到。

而且,如果持久性单元最终将被发现,你可能会遇到的一个问题。您的数据源设置为MySqlDS,但很可能这应该是java:/MySqlDS,因为这是JBoss AS将数据源绑定到的位置。

进一步无关你的问题,但你可能没有明确列出你的类。除非您不希望运行时扫描发生,但是您还必须包含<exclude-unlisted-classes/>元素。 (哦,和最后一件事JTA已经是默认的,所以你也可以离开了交易型=“JTA”)

+0

感谢名单4回覆中...雅persistance.xml是EJB module..i它改变成Java :/ MySqlDS ..持久性错误消失...但是,我还没有能够运行该项目。它引发同样的异常。 Ne其他建议? – 2011-02-10 04:48:16