I wonder what the nicest strategy for this kind of stuff is, where we have
support for multiple loggers but don't want to ship the jars by default.
Maybe we need to have a lib folder or something that we deploy
automatically? Or just instructions as to where to put those jar(s) so
they're on the class-path.
On 24 June 2016 at 12:37, Eric Wittmann <eric.wittmann(a)redhat.com> wrote:
Here are two new jira issues for tracking purposes:
https://issues.jboss.org/browse/APIMAN-1199
https://issues.jboss.org/browse/APIMAN-1200
-Eric
On 6/24/2016 7:35 AM, Eric Wittmann wrote:
> 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(a)gmail.com
>> <mailto:ejlp12@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(a)redhat.com <mailto:eric.wittmann@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(a)lists.jboss.org
<mailto:Apiman-user@lists.jboss.org>
>> >>
https://lists.jboss.org/mailman/listinfo/apiman-user
>> >>
>> >
>> _______________________________________________
>> Apiman-user mailing list
>> Apiman-user(a)lists.jboss.org <mailto:Apiman-user@lists.jboss.org>
>>
https://lists.jboss.org/mailman/listinfo/apiman-user
>>
>>
>> _______________________________________________
> Apiman-user mailing list
> Apiman-user(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/apiman-user
>
>