2013-05-13 3 views
0
[TxPolicy] javax.ejb.EJBTransactionRolledbackException: Wrong target. class com.sample.mock.service.MockFinanceService for public long com.sample.mock.service.MockFinanceService.createFinancialTransaction(com.sample.mock.service.params.MockFinanceTrasactionParam) 

내 비 저장 Bean 클래스는 다음과 같습니다얻기 잘못된 대상 예외가

@Stateless(mappedName = "MockFinanceService") 
public class MockFinanceService implements MockFinanceServiceLocal { 
.... 
} 

지역의 인터페이스는 다음과 같습니다

@Local 
public interface MockFinanceServiceLocal { 
    public long createFinancialTransaction(MockFinanceTrasactionParam mockFinanceTrasactionParam); 
} 

다음과 같이 나는이 서비스를 호출하고 있습니다 :

MockFinanceServiceLocal mockFinanceServiceLocal = (MockFinanceServiceLocal) new InitialContext().lookup("FinanceEAR/MockFinanceService/local"); 
...... 
mockFinanceServiceLocal.createFinancialTransaction(mockFinanceTrasactionParam); 

무엇이 잘못되었는지 이해해주십시오.

답변

0

이유는 내 응용 프로그램에 귀 범위 클래스 로더 설정이 있기 때문입니다. 그렇지 않으면 로컬 참조가 동일한 서버에 배포 된 다른 귀에서도 작동해야합니다.

0

당신의 오류는이 라인

mockFinanceServiceLocal.createFinancialTransaction(mockFinanceTrasactionParam); 

mockFinanceTrasactionParam은 무엇인가에 문제가 있음을 시사한다?어디에 정의되어 있습니까?

+0

mockFinanceTrasactionParam은 MockFinanceService가 상주하는 EJB 프로젝트의 클라이언트 jar에 정의됩니다. – Pradeepkumar

+0

도 해당 설정 파일을 게시하십시오. –

+0

필자는 주석 처리 된 구성만을 가지고 있습니다. – Pradeepkumar

1

일부 JBoss 버전에는 @Local 인터페이스를 사용할 때이 오류가 발생하고 서버가 참조로 값을 전달하도록 구성된 버그가 있습니다. 이 경우 @Local 대신 @Remote을 사용하면됩니다. 참조 : https://access.redhat.com/site/solutions/28349

수동으로 조회를 수행하는 이유가 있습니까? EJB를 삽입 할 수 있습니까?

@EJB 
private MockFinanceServiceLocal mockFinanceServiceLocal; 

public void myAction() { 
    // ... 
    mockFinanceServiceLocal.createFinancialTransaction(mockFinanceTransactionParams); 
} 

또한 질문에 jboss-seam과 관련된 태그를 추가했습니다. 귀하의 질문이나 그것에 관련된 문제, 즉 Seam 관련 ...