[Apiman-user] How to set apiman logging (NullPointerException when using Log4j2LoggerFactory)

Eric Wittmann eric.wittmann at redhat.com
Fri Jun 24 07:35:40 EDT 2016


He's using 1.2.6.Final, though - so that dependency change wouldn't be 
affecting him.

I'll write up some jiras for these issues (documentation + classnotfound).

-Eric

On 6/24/2016 5:10 AM, Marc Savy wrote:
> You will need log4j2 onto your classpath.
>
> It was recently removed as an explicit dependency, I believe.
>
> On 23 June 2016 at 23:41, ejlp ejlp <ejlp12 at gmail.com
> <mailto:ejlp12 at gmail.com>> wrote:
>
>     Hi Eric,
>
>     Thanks for the answer. The package/class name was copied from
>     http://www.apiman.io/latest/developer-guide.html section 4.2.2.2
>
>     I have changed it and now I got following response:
>
>     {"responseCode":500,"message":"org/apache/logging/log4j/LogManager","trace":"java.lang.NoClassDefFoundError:
>     org/apache/logging/log4j/LogManager\n\tat
>     io.apiman.common.logging.slf4j.Log4j2LoggerFactory.createLogger(Log4j2LoggerFactory.java:35)\n\tat
>     io.apiman.gateway.engine.policy.PolicyContextImpl.getLogger(PolicyContextImpl.java:115)\n\tat
>     io.apiman.plugins.log_policy.LogHeadersPolicy.doApply(LogHeadersPolicy.java:75)\n\tat
>     io.apiman.plugins.log_policy.LogHeadersPolicy.doApply(LogHeadersPolicy.java:36)\n\tat
>     io.apiman.gateway.engine.policies.AbstractMappedPolicy.apply(AbstractMappedPolicy.java:70)\n\tat
>     io.apiman.gateway.engine.policy.RequestChain.applyPolicy(RequestChain.java:68)\n\tat
>     io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:148)\n\tat
>     io.apiman.gateway.engine.policies.RateLimitingPolicy$1.handle(RateLimitingPolicy.java:104)\n\tat
>     io.apiman.gateway.engine.policies.RateLimitingPolicy$1.handle(RateLimitingPolicy.java:91)\n\tat
>     io.apiman.gateway.engine.es.ESRateLimiterComponent.updateBucketAndReturn(ESRateLimiterComponent.java:115)\n\tat
>     io.apiman.gateway.engine.es.ESRateLimiterComponent.accept(ESRateLimiterComponent.java:83)\n\tat
>     io.apiman.gateway.engine.policies.RateLimitingPolicy.doApply(RateLimitingPolicy.java:91)\n\tat
>     io.apiman.gateway.engine.policies.RateLimitingPolicy.doApply(RateLimitingPolicy.java:45)\n\tat
>     io.apiman.gateway.engine.policies.AbstractMappedPolicy.apply(AbstractMappedPolicy.java:70)\n\tat
>     io.apiman.gateway.engine.policy.RequestChain.applyPolicy(RequestChain.java:68)\n\tat
>     io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:148)\n\tat
>     io.apiman.gateway.engine.policies.BasicAuthenticationPolicy.doApply(BasicAuthenticationPolicy.java:80)\n\tat
>     io.apiman.gateway.engine.policies.BasicAuthenticationPolicy.doApply(BasicAuthenticationPolicy.java:45)\n\tat
>     io.apiman.gateway.engine.policies.AbstractMappedPolicy.apply(AbstractMappedPolicy.java:70)\n\tat
>     io.apiman.gateway.engine.policy.RequestChain.applyPolicy(RequestChain.java:68)\n\tat
>     io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:148)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$4(ApiRequestExecutorImpl.java:271)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$$Lambda$110/1594790599.handle(Unknown
>     Source)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$loadPolicies$7(ApiRequestExecutorImpl.java:631)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$$Lambda$112/863872294.handle(Unknown
>     Source)\n\tat
>     io.apiman.gateway.engine.policy.PolicyFactoryImpl$1.handle(PolicyFactoryImpl.java:192)\n\tat
>     io.apiman.gateway.engine.policy.PolicyFactoryImpl$1.handle(PolicyFactoryImpl.java:170)\n\tat
>     io.apiman.gateway.engine.impl.DefaultPluginRegistry.lambda$loadPlugin$18(DefaultPluginRegistry.java:185)\n\tat
>     io.apiman.gateway.engine.impl.DefaultPluginRegistry$$Lambda$113/366500518.handle(Unknown
>     Source)\n\tat
>     io.apiman.gateway.engine.impl.DefaultPluginRegistry.loadPlugin(DefaultPluginRegistry.java:234)\n\tat
>     io.apiman.gateway.engine.policy.PolicyFactoryImpl.doLoadFromPlugin(PolicyFactoryImpl.java:170)\n\tat
>     io.apiman.gateway.engine.policy.PolicyFactoryImpl.loadPolicy(PolicyFactoryImpl.java:109)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.loadPolicies(ApiRequestExecutorImpl.java:603)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$6(ApiRequestExecutorImpl.java:391)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$$Lambda$111/1559374006.handle(Unknown
>     Source)\n\tat
>     io.apiman.gateway.engine.impl.SecureRegistryWrapper$3.handle(SecureRegistryWrapper.java:172)\n\tat
>     io.apiman.gateway.engine.impl.SecureRegistryWrapper$3.handle(SecureRegistryWrapper.java:154)\n\tat
>     io.apiman.gateway.engine.es.CachingESRegistry.getContract(CachingESRegistry.java:101)\n\tat
>     io.apiman.gateway.engine.impl.SecureRegistryWrapper.getContract(SecureRegistryWrapper.java:154)\n\tat
>     io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute(ApiRequestExecutorImpl.java:357)\n\tat
>     io.apiman.gateway.platforms.servlet.GatewayServlet.doAction(GatewayServlet.java:179)\n\tat
>     io.apiman.gateway.platforms.servlet.GatewayServlet.service(GatewayServlet.java:79)\n\tat
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n\tat
>     io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)\n\tat
>     io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)\n\tat
>     io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)\n\tat
>     org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)\n\tat
>     io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat
>     io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)\n\tat
>     io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)\n\tat
>     io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat
>     io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)\n\tat
>     io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)\n\tat
>     io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)\n\tat
>     io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)\n\tat
>     io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)\n\tat
>     io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)\n\tat
>     io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat
>     org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)\n\tat
>     io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat
>     io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)\n\tat
>     io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285)\n\tat
>     io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264)\n\tat
>     io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)\n\tat
>     io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175)\n\tat
>     io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)\n\tat
>     io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792)\n\tat
>     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat
>     java.lang.Thread.run(Thread.java:745)\nCaused by:
>     java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
>     from [Module \"deployment.apiman-gateway.war:main\" from Service
>     Module Loader]\n\tat
>     org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)\n\tat
>     org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)\n\tat
>     org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)\n\tat
>     org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)\n\t...
>     70 more\n"}
>
>     On Thu, Jun 23, 2016 at 7:26 PM, Eric Wittmann
>     <eric.wittmann at redhat.com <mailto:eric.wittmann at redhat.com>> wrote:
>     > You are just *slightly* off in your apiman.properties
>     configuration! And
>     > it's understandable, as you'll see shortly.  :)
>     >
>     > You have modified "apiman-gateway.logger-factory" to have the
>     following
>     > value:
>     >
>     >   io.apiman.common.logging.log4j2.Log4j2LoggerFactory
>     >
>     > But instead it should be this:
>     >
>     >   io.apiman.common.logging.slf4j.Log4j2LoggerFactory
>     >
>     > -Eric
>     >
>     >
>     > On 6/22/2016 7:40 PM, ejlp ejlp wrote:
>     >>
>     >> Hi,
>     >>
>     >> I was trying to use Log Header policy but no logging message shown in
>     >> Gatway's console or server.log.
>     >> I am using JBoss EAP 7.0 and Apiman 1.2.6.Final
>     >>
>     >> This is what I've done in Gateway node:
>     >>
>     >> * Use extracted war of apiman-gateway-api.war and apiman-gateway.war
>     >> * Put apiman-common-logging-log4j2-1.2.6.Final.jar into
>     >>
>     <JBOSS_HOME>/standalone/deployment/apiman-gateway-api.war/WEB-INF/lib/
>     >> and
>     <JBOSS_HOME>/standalone/deployment/apiman-gateway.war/WEB-INF/lib/
>     >> * Remove following line from apiman.properties
>     >>
>     >>
>     >>
>     apiman-gateway.logger-factory=io.apiman.common.logging.impl.NoOpLoggerFactory
>     >>
>     >>   and put this line:
>     >>
>     >>
>     >>
>     apiman-gateway.logger-factory=io.apiman.common.logging.log4j2.Log4j2LoggerFactory
>     >>
>     >> * Restart JBoss EAP
>     >>
>     >> I got following stacktrace when EAP started:
>     >>
>     >> 05:58:00,693 ERROR [org.jboss.msc.service.fail] (ServerService Thread
>     >> Pool -- 64) MSC000001: Failed to start service
>     >>
>     jboss.undertow.deployment.default-server.default-host./apiman-gateway-api:
>     >> org.jboss.msc.service.StartException in service
>     >>
>     jboss.undertow.deployment.default-server.default-host./apiman-gateway-api:
>     >> java.lang.RuntimeException: java.lang.RuntimeException:
>     >> java.lang.NullPointerException
>     >> at
>     >>
>     org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85)
>     >> at
>     java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     >> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     >> at
>     >>
>     java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>     >> at
>     >>
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>     >> at java.lang.Thread.run(Thread.java:745)
>     >> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
>     >> Caused by: java.lang.RuntimeException: java.lang.RuntimeException:
>     >> java.lang.NullPointerException
>     >> at
>     >>
>     io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:231)
>     >> at
>     >>
>     org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:100)
>     >> at
>     >>
>     org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82)
>     >> ... 6 more
>     >> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
>     >> at
>     >>
>     io.apiman.gateway.engine.impl.ConfigDrivenEngineFactory.instantiate(ConfigDrivenEngineFactory.java:179)
>     >> at
>     >>
>     io.apiman.gateway.engine.impl.ConfigDrivenEngineFactory.create(ConfigDrivenEngineFactory.java:163)
>     >> at
>     >>
>     io.apiman.gateway.engine.impl.ConfigDrivenEngineFactory.createLoggerFactory(ConfigDrivenEngineFactory.java:152)
>     >> at
>     >>
>     io.apiman.gateway.engine.impl.AbstractEngineFactory.createEngine(AbstractEngineFactory.java:60)
>     >> at
>     io.apiman.gateway.platforms.war.WarGateway.init(WarGateway.java:55)
>     >> at
>     >>
>     io.apiman.gateway.platforms.war.listeners.WarGatewayBootstrapper.contextInitialized(WarGatewayBootstrapper.java:42)
>     >> at
>     >>
>     io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187)
>     >> at
>     >>
>     io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:198)
>     >> ... 8 more
>     >> Caused by: java.lang.NullPointerException
>     >> at
>     >>
>     io.apiman.gateway.engine.impl.ConfigDrivenEngineFactory.instantiate(ConfigDrivenEngineFactory.java:175)
>     >> ... 15 more
>     >>
>     >> 05:58:00,695 ERROR [org.jboss.as.controller.management-operation]
>     >> (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy")
>     >> failed - address: ([("deployment" => "apiman-gateway-api.war")]) -
>     >> failure description: {"WFLYCTL0080: Failed services" =>
>     >>
>     >>
>     {"jboss.undertow.deployment.default-server.default-host./apiman-gateway-api"
>     >> => "org.jboss.msc.service.StartException in service
>     >>
>     jboss.undertow.deployment.default-server.default-host./apiman-gateway-api:
>     >> java.lang.RuntimeException: java.lang.RuntimeException:
>     >> java.lang.NullPointerException
>     >>     Caused by: java.lang.RuntimeException:
>     java.lang.RuntimeException:
>     >> java.lang.NullPointerException
>     >>     Caused by: java.lang.RuntimeException:
>     java.lang.NullPointerException
>     >>     Caused by: java.lang.NullPointerException"}}
>     >> _______________________________________________
>     >> Apiman-user mailing list
>     >> Apiman-user at lists.jboss.org <mailto:Apiman-user at lists.jboss.org>
>     >> https://lists.jboss.org/mailman/listinfo/apiman-user
>     >>
>     >
>     _______________________________________________
>     Apiman-user mailing list
>     Apiman-user at lists.jboss.org <mailto:Apiman-user at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/apiman-user
>
>


More information about the Apiman-user mailing list