gpt4 book ai didi

java - 非法参数异常 : Can not set UserTransaction field to ServerVMClientUserTransaction

转载 作者:行者123 更新时间:2023-12-01 04:50:51 29 4
gpt4 key购买 nike

我正在将应用程序从 GlassFish 3.1 迁移到 JBoss 6.1。

这段代码在 GlassFish 中运行得非常好,但在 JBoss 中却抛出了一个丑陋的错误:

自定义注释:

@Named
@ViewAccessScoped
@Stereotype
@Target( { ElementType.TYPE, ElementType.METHOD, ElementType.FIELD } )
@Retention(RetentionPolicy.RUNTIME)
public @interface Model {
}

bean :

@Model
public class MyBean extends BaseBean {

@Inject
UserService userService

public void save() {
startTransaction();
studioService.persist(studio);
commitTransaction();
}
}

基础 bean :

public class BaseBean implements Serializable {

@Resource
protected UserTransaction transaction;
@PersistenceContext(unitName = "fits_PU")
protected EntityManager entityManager;
[...]

protected void startTransaction() {
try {
transaction.begin();
entityManager.joinTransaction();
} catch [a few exceptions]
}

protected void commitTransaction() {
try {
transaction.commit();
} catch [an awful lot of exceptions]
}
}

我收到以下异常:

Caused by: java.lang.IllegalArgumentException: Can not set javax.transaction.UserTransaction field my.company.project.BaseBean.transaction to org.jboss.tm.usertx.client.ServerVMClientUserTransaction
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164) [:1.7.0_11]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168) [:1.7.0_11]
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) [:1.7.0_11]
at java.lang.reflect.Field.set(Field.java:680) [:1.7.0_11]

我整个下午都在谷歌上搜索它,但找不到任何线索。有什么想法吗?

最佳答案

所以。我环顾四周,尝试过,犯过错误,最后发现我错了。

如果我使用 EJB,则不需要管理任何 UserTransaction,因为事务是由容器管理的。因此,

  1. 我删除了 Beans 中对它的所有引用
  2. 我将 @Named 服务更改为 @Stateless EJB
  3. 我使用 @EJB 注释而不是 @Inject 将它们注入(inject)到我的 Bean 中

希望对其他人有帮助。

关于java - 非法参数异常 : Can not set UserTransaction field to ServerVMClientUserTransaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14985931/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com