EJB - EJBTransactionRolledbackException 参数类型不匹配 - 重载方法
EJB - EJBTransactionRolledbackException argument type mismatch - overloaded method
我真的需要一些帮助!通过调用具有方法重载的 EJB,我遇到以下异常:javax.ejb.EJBTransactionRolledbackException:参数类型不匹配
有趣的是,这种情况是随机发生的,而且只发生在这个重载方法中。请参阅以下结构:
// superclass
public abstract class GenericService<T> {
public void update(T object) throws Exception {
// some logic
}
}
// subclass
@Stateless
public class TableService extends GenericService<Table> implements ITableService {
@Override
public void update(Table table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
}
如果我调用包含 super.update(table) 语句的 TableService.update,发生错误。但是,如果我从 TableService.update 中删除 super.update(table) 语句,则直接调用 DAO (跳过 super),有效。
更糟糕的是,这种情况并不经常发生。只有当我有时重新启动 jboss wildfly 时。
显然没有任何问题,应该完全包含 super.update(table) 语句。你能帮忙吗?
容器 (JBOSS) 提供的 EJB 代理为具有 Object 类型的相应方法传递参数。
因此,如果有重载方法,代理可能无法解析要调用的方法
@Stateless
public class TableService extends GenericService<Table> implements ITableService {
@Override
public void update(Table table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
@Override
public void update(List<Table> table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
}
proxy.update(Object obj)...
参数类型不匹配
我真的需要一些帮助!通过调用具有方法重载的 EJB,我遇到以下异常:javax.ejb.EJBTransactionRolledbackException:参数类型不匹配
有趣的是,这种情况是随机发生的,而且只发生在这个重载方法中。请参阅以下结构:
// superclass
public abstract class GenericService<T> {
public void update(T object) throws Exception {
// some logic
}
}
// subclass
@Stateless
public class TableService extends GenericService<Table> implements ITableService {
@Override
public void update(Table table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
}
如果我调用包含 super.update(table) 语句的 TableService.update,发生错误。但是,如果我从 TableService.update 中删除 super.update(table) 语句,则直接调用 DAO (跳过 super),有效。
更糟糕的是,这种情况并不经常发生。只有当我有时重新启动 jboss wildfly 时。
显然没有任何问题,应该完全包含 super.update(table) 语句。你能帮忙吗?
容器 (JBOSS) 提供的 EJB 代理为具有 Object 类型的相应方法传递参数。 因此,如果有重载方法,代理可能无法解析要调用的方法
@Stateless
public class TableService extends GenericService<Table> implements ITableService {
@Override
public void update(Table table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
@Override
public void update(List<Table> table) throws Exception {
/*
* some logic
*/
// call super
super.update(table);
}
}
proxy.update(Object obj)...
参数类型不匹配