Wildfly 10 Domain 模式下 SessionContext 为 null
SessionContext is null in Wildfly 10 Domain mode
在 Wildfly 10 独立模式下,我使用以下代码片段获取 SessionContext 对象
InitialContext context = new InitialContext();
UserTransaction userTrans = null;
userTrans = (UserTransaction) m_Context.lookup("java:jboss/UserTransaction");
userTrans.setTransactionTimeout(600000);
然后在 SLSB 中我使用
@Resource
protected SessionContext sessionontext;
但是相同的代码在 DOMAIN 模式下执行时无法使用 SessionContext,因为它的值为 null。
更新
@Stateless(mappedName="AppManager")
@Local(value = AppManager.class)
@Remote(value = AppManagerRemote.class)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class AppManagerBean extends AppManagerAdapter implements AppManagerRemote
{
try
{
}
catch(Exp..)
{
sessionontext.setRollbackOnly(); ///Here sessionontext is null
}
}
public class AppManagerAdapter
{
@Resource
protected SessionContext sessionontext;
//
}
SessionContext 注入应该在无状态 bean 本身。
好感动
@Resource
protected SessionContext sessionontext;
从 AppManagerAdapter 到 AppManagerBean 然后就可以了。
在 Wildfly 10 独立模式下,我使用以下代码片段获取 SessionContext 对象
InitialContext context = new InitialContext();
UserTransaction userTrans = null;
userTrans = (UserTransaction) m_Context.lookup("java:jboss/UserTransaction");
userTrans.setTransactionTimeout(600000);
然后在 SLSB 中我使用
@Resource
protected SessionContext sessionontext;
但是相同的代码在 DOMAIN 模式下执行时无法使用 SessionContext,因为它的值为 null。
更新
@Stateless(mappedName="AppManager")
@Local(value = AppManager.class)
@Remote(value = AppManagerRemote.class)
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@TransactionManagement(TransactionManagementType.CONTAINER)
public class AppManagerBean extends AppManagerAdapter implements AppManagerRemote
{
try
{
}
catch(Exp..)
{
sessionontext.setRollbackOnly(); ///Here sessionontext is null
}
}
public class AppManagerAdapter
{
@Resource
protected SessionContext sessionontext;
//
}
SessionContext 注入应该在无状态 bean 本身。 好感动
@Resource
protected SessionContext sessionontext;
从 AppManagerAdapter 到 AppManagerBean 然后就可以了。