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);

何が間違っているのかを理解するのを手伝ってください。

4

3 に答える 3

1

一部の JBoss バージョンにはバグがあり、@Localインターフェースを使用し、サーバーが参照によって値を渡すように構成されている場合にこのエラーが発生します。この場合は、@Remote代わりに使用するだけで機能し@Localます。参照: https://access.redhat.com/site/solutions/28349

ルックアップを手動で行っている理由はありますか? EJB を注入できませんか?

@EJB
private MockFinanceServiceLocal mockFinanceServiceLocal;

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

また、質問にjboss-seam関連タグを付けました。あなたの質問、またはそれに関連する問題には、Seam に関連するものは何もありません...

于 2013-05-24T14:36:10.080 に答える