JBOSS EAP 7.1:NoSuchMethodError:org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V
Posted
技术标签:
【中文标题】JBOSS EAP 7.1:NoSuchMethodError:org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V【英文标题】:JBOSS EAP 7.1 : NoSuchMethodError: org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V 【发布时间】:2020-08-29 11:43:34 【问题描述】:所以我使用位于实现 org.jboss.logging.BasicLogger 接口的 EjbComponent 类下的 getRollBackOnly 方法:
public boolean getRollbackOnly() throws IllegalStateException
if (isBeanManagedTransaction())
throw EjbLogger.ROOT_LOGGER.failToCallgetRollbackOnly();
try
TransactionManager tm = getTransactionManager();
if (tm.getTransaction() == null)
throw EjbLogger.ROOT_LOGGER.failToCallgetRollbackOnlyOnNoneTransaction();
int status = tm.getStatus();
EjbLogger.ROOT_LOGGER.tracef("Current transaction status is %d", status); //this ligne is causing the error
switch (status)
case 3:
case 4:
throw EjbLogger.ROOT_LOGGER.failToCallgetRollbackOnlyAfterTxcompleted();
case 1:
case 9:
return true;
return false;
catch (SystemException se)
EjbLogger.ROOT_LOGGER.getTxManagerStatusFailed((Throwable)se);
return true;
EJBLogger 接口目标行:
public static final EjbLogger ROOT_LOGGER = (EjbLogger)Logger.getMessageLogger(EjbLogger.class, "org.jboss.as.ejb3");
我遇到的异常:
Caused by: java.lang.NoSuchMethodError: org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V at org.jboss.as.ejb3.component.EJBComponent.getRollbackOnly(EJBComponent.java:358) at org.jboss.as.ejb3.component.session.SessionBeanComponent.getRollbackOnly(SessionBeanComponent.java:100) at org.jboss.as.ejb3.context.EJBContextImpl.getRollbackOnly(EJBContextImpl.java:90) at org.jboss.as.ejb3.context.SessionContextImpl.getRollbackOnly(SessionContextImpl.java:133)
有人知道我为什么会收到这个错误吗? ps:我已经有了jboss-logging jar
谢谢。
【问题讨论】:
您是否在部署中使用EjbLogger
?这并不意味着在服务器本身之外使用。还要确保你的部署中没有包含 jboss-logging 库。
嗨 James 感谢您的快速响应,实际上我正在尝试在 Jboss eap 7.1 服务器上部署多租户应用程序,并且我正在使用不存在的 shema 测试 EjbLogger 下的 setRollBackOnly() 方法它抛出前面提到的错误消息希望我相信这不是预期的行为。
所以这是一个测试用例?如果是这样,您可能在类路径上使用了错误版本的 jboss-logging。
实际上我使用 jboss-logging 3.1.0 GA 和 wildfly-ejb3-7.1.0.GA-redhat-11(ps:我的应用程序中没有 jboss-logging 库)跨度>
谢谢,我已经通过使用这个库的最新版本(jboss-logging-3.4.1.Final)解决了这个问题
【参考方案1】:
对于谁得到了异常,我已经通过使用最新版本的 jboss-logging 库 (jboss-logging-3.4.1.Final) 解决了这个问题
【讨论】:
以上是关于JBOSS EAP 7.1:NoSuchMethodError:org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V的主要内容,如果未能解决你的问题,请参考以下文章
JBoss EAP 7.1 部署失败的集成器:未找到提供程序
JBoss EAP 6.4 -> 7.1 使用休眠 4 而不是默认休眠 5
我无法在 JBOSS EAP 7.1 中从 EAR 或 WAR 设置系统属性
部署到 jboss EAP 7.1 时,此 URL 不支持 HTTP Post 方法
在 JBOSS EAP 7.1 中,如何将 EJB 和 undertow 的统计启用设置为 True?
JBOSS EAP 7.1:NoSuchMethodError:org.jboss.as.ejb3.logging.EjbLogger.tracef(Ljava/lang/String;I)V