java - EJB 本地调用出现错误目标异常

标签 java ejb jboss-seam

[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 {
....
}

本地接口(interface)是:

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

我按如下方式调用该服务:

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

请帮助我了解问题所在。

最佳答案

某些 JBoss 版本中存在一个错误,当使用 @Local 接口(interface)并且服务器配置为通过引用传递值时,会产生此错误。如果是这种情况,那么只需使用 @Remote 而不是 @Local 就可以了。请参阅:https://access.redhat.com/site/solutions/28349

您手动进行查找有什么原因吗?不能注入(inject)EJB吗?

@EJB
private MockFinanceServiceLocal mockFinanceServiceLocal;

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

此外,您将问题标记为与 jboss-seam 相关。您的问题或与之相关的问题中没有任何内容与 Seam 相关......

关于java - EJB 本地调用出现错误目标异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16520350/

相关文章:

java - 同步块(synchronized block)未锁定对象引用

ejb - 非法参数异常 : No handler can be found for the key 'javax.security.auth.Subject.container'

java - 尝试连接到 MYSQL 数据库时出现 EJBTransactionRolledbackException

google-visualization - 谷歌可视化+jboss接缝2

java - 兔子MQ : Improve queue flushing speed

Java - 为什么这是一个无限循环以及如何修复它?

Java eclipse,为什么JVM崩溃?

glassfish - 无效的 ejb jar : it contains zero ejb.

java - 接缝导航规则。捕获所有无效 URL 并重定向到 404 页面