2011-02-09 2 views
1

동적 웹 프로젝트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/} 

는 EJB, EAR 및 웹 프로젝트 이름이 언급 될 때를 실행하는 동안 나는이 예외를 얻고을 배포하는 동안.

의 persistence.xml은 다음과 같습니다 :이 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> 

가? JBoss AS 서버 및 MySql 데이터베이스를 사용하고 있습니다.

내가 잘못했을 수있는 곳을 친절히 제안합니다. 또한 다른 정보가 필요한지 확인하십시오.

답변

2

EAR에는 persistence.xml의 어떤 곳이 있습니까? 그것은 EJB 모듈의 META-INF 폴더 안에 있어야합니다. 그것이 없으면 (예 : EAR 루트 또는 웹 모듈에 있음), 실제로 찾을 수 없습니다.

또한 지속성 단위가 결국 발견되면 다음 문제가 발생할 수 있습니다. 데이터 소스는 MySqlDS으로 설정되어 있지만, JBoss AS가 데이터 소스를 바인드 할 위치이므로이 값은 java:/MySqlDS이어야합니다.

질문에 더 관련이 없지만 클래스를 명시 적으로 나열 할 필요는 없습니다. 런타임 검색을 원하지 않는 한, 그렇다면 <exclude-unlisted-classes/> 요소도 포함시켜야합니다. (아, 마지막으로 JTA가 이미 기본값이므로 트랜잭션 유형 = "JTA")

+0

thanx 4 답장 ... 예 persistance.xml은 EJB 모듈에 있습니다 .i는 java로 변경했습니다. :/MySqlDS .. 지속성 오류가 사라졌습니다. 그러나 아직 프로젝트를 실행할 수 없습니다. 같은 예외가 throw됩니다. 다른 제안? –

+1

방금 ​​다른 걸 눈치 챘습니다. 이 오류는 BookMartEjb가 발견되지 않는다고 불평하지만, PU의 이름은 BookMartEJB입니다. 그 이름은 정확히 동일해야합니다. (당신은 당신의 pu 이름을 BookMarkPU로 바꾸길 원할 것입니다 : * persistence-unit name = "BookMartPU"* 따라서 어떤 위치에서 오래된 이름을 사용하고 있는지 명확하게 검사 할 수 있습니다) –

+0

thanx arjan !! :) tht 정확히 실수 였어 ... –

관련 문제