Web Service application throws java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger

Solution Verified - Updated -

Issue

  • A web service client is deployed in JBoss EAP 6. It is based out of Apache CXF 2.7.4.
  • JBoss will start without error messages. When calling the web service via the client, the following below exception is encountered:
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
    at examaple.com.logging.Slf4jLogger.internalLogFormatted(Slf4jLogger.java:139)
    at example.com.logging.AbstractDelegatingLogger.internalLog(AbstractDelegatingLogger.java:355)
    at example.com.logging.AbstractDelegatingLogger.doLog(AbstractDelegatingLogger.java:337)
    at example.com.logging.AbstractDelegatingLogger.info(AbstractDelegatingLogger.java:237)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:445)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:690)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:540)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:252)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
    at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
    at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:156)
    at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:156)
  • The content of the manifest.mf shows the below content
Import-Package: org.slf4j.impl;version=1.5.8
  • I tried to change to slf4j version 1.7.5 which is coming with cxf. But it gets to another error while starting up JBoss:
java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:108)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
    at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:301)
  • Seems as if hibernate is using slf4j in a former version, 1.5.8, but cxf wants version 1.7.5.

Environment

  • JBoss Enterprise Application Platform (EAP)
    • 5.1.1

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content