我在进行一些数据插入时检索 UserTransaction,并且在 jboss 中运行应用程序时代码工作正常。然而,当使用 Ecpise 运行时,它在 JUnit 测试中失败了
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context.
我的交易代码如下
public static UserTransaction getUserTransation() throws CommonServiceException{
Context context = null;
UserTransaction ut = null;
try {
context = new InitialContext();
ut = (UserTransaction)
context.lookup("java:comp/UserTransaction");
} catch (NamingException e) {
throw new CommonServiceException(XMLReader.getErrorCode("Connector:getUserTransation"), e.getMessage(), e);
}
return ut;
}
它找不到 java:comp。我应该在我的 Junit 测试课程中专门做些什么来让它正常工作吗?
添加:
我将以下代码添加到测试类中,但没有给出上述错误。但是后来在提交说没有事务时失败了。
ic = new InitialContext();
ic.createSubcontext("java:");
ic.createSubcontext("java:comp");
ut = new UserTransactionImpl();
ic.bind("java:comp/UserTransaction",ut);