Problema com log4j no VRaptor 3.4.1 (JDK7)

6 respostas
rafaelob

Pessoal,

Coloquei as libs:slf4j-api-1.6.1.jar e slf4j-log4j12-1.6.1.jar e o log4j-1.2.16.jar.

Meu web.xml tá assim:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    
    <context-param>  
        <param-name>br.com.caelum.vraptor.packages</param-name>  
        <param-value>  
            br.com.caelum.vraptor.util.hibernate  
        </param-value>  
    </context-param> 
    
    <context-param>
        <param-name>br.com.caelum.vraptor.provider</param-name>
        <param-value>br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider</param-value>
    </context-param>
</web-app>

Não coloquei o filter do Vraptor, pois tou usando um container JAVA EE6.

Então, estou com esses problemas:

Grave: log4j:ERROR log4j called after unloading, see http://logging.apache.org/log4j/1.2/faq.html#unload.
Grave: java.lang.IllegalStateException: Class invariant violation
	at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)
	at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
	at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
	at br.com.caelum.vraptor.validator.JSR303ValidatorFactory.<clinit>(JSR303ValidatorFactory.java:40)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949)
	at java.lang.reflect.Field.getFieldAccessor(Field.java:930)
	at java.lang.reflect.Field.get(Field.java:372)
	at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1836)
	at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1665)
	at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1634)
	at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:233)
	at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:185)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:450)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
	at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:126)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)

Grave: 	at org.apache.log4j.LogManager.getLoggerRepository(LogManager.java:199)
Grave: 	at org.apache.log4j.LogManager.getLogger(LogManager.java:228)
Grave: 	at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
Grave: 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
Grave: 	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
Grave: 	at br.com.caelum.vraptor.validator.JSR303ValidatorFactory.<clinit>(JSR303ValidatorFactory.java:40)
Grave: 	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
Grave: 	at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:43)
Grave: 	at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:140)
Grave: 	at java.lang.reflect.Field.acquireFieldAccessor(Field.java:949)
Grave: 	at java.lang.reflect.Field.getFieldAccessor(Field.java:930)
Grave: 	at java.lang.reflect.Field.get(Field.java:372)
Grave: 	at org.glassfish.web.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1836)
Grave: 	at org.glassfish.web.loader.WebappClassLoader.stop(WebappClassLoader.java:1665)
Grave: 	at org.glassfish.web.loader.WebappClassLoader.preDestroy(WebappClassLoader.java:1634)
Grave: 	at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:233)
Grave: 	at org.glassfish.deployment.common.DeploymentContextImpl.getClassLoader(DeploymentContextImpl.java:185)
Grave: 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:450)
Grave: 	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
Grave: 	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
Grave: 	at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:126)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
Grave: 	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
Grave: 	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
Grave: 	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
Grave: 	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
Grave: 	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
Grave: 	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
Grave: 	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
Grave: 	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
Grave: 	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
Grave: 	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
Grave: 	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
Grave: 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
Grave: 	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
Grave: 	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
Grave: 	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
Grave: 	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
Grave: 	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
Grave: 	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
Grave: 	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
Grave: 	at java.lang.Thread.run(Thread.java:722)
Grave: log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
Grave: log4j:WARN Please initialize the log4j system properly.
Grave: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Grave: WebModule[/Core]PWC1270: Exception starting filter vraptor
java.lang.InstantiationException
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:124)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4685)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5377)
	at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2000)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1651)
	at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
	at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
	at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
	at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:294)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:462)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:360)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
	at org.glassfish.deployment.admin.ReDeployCommand.execute(ReDeployCommand.java:126)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)
Caused by: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/springframework/web/context/request/RequestContextListener
	at br.com.caelum.vraptor.config.BasicConfiguration.getProvider(BasicConfiguration.java:75)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:102)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:264)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:120)
	... 47 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/request/RequestContextListener
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.<init>(SpringProvider.java:39)
	at br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider.<init>(HibernateCustomProvider.java:45)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
	at br.com.caelum.vraptor.config.BasicConfiguration.getProvider(BasicConfiguration.java:73)
	... 50 more
Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1519)
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1369)
	... 57 more

Informações: WEB0671: Loading application [Core] at [/Core]
Informações: Core foi implementado com êxito em 1.829 milisegundos.

Tentei de tudo aqui, mas ainda não consegui resolver, se alguém tiver uma luz, agradeceria

6 Respostas

Lucas_Cavalcanti

primeiro, pode tirar essa conf:

<context-param>  
        <param-name>br.com.caelum.vraptor.provider</param-name>  
        <param-value>br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider</param-value>  
    </context-param>

o parâmetro do packages já faz isso.

o erro que deu é um class not found, ou seja, tá faltando um jar… nesse caso o jar do spring.

Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
rafaelob

Lucas, no caso eu posso deixar só a config do provider, ao invés do package, certo?

Lucas_Cavalcanti

pode, mas é melhor usar a de package… é mais garantida e não te prende no spring, vc pode usá-la com guice ou pico tb.

rafaelob

Ainda continuo com esse problema do log4j, olhei no FAQ indicado, mas não consegui resolver ainda

Lucas_Cavalcanti

isso afeta o funcionamento da aplicação?

vc tá com o arquivo de configuração correto do log4j? será que não tem algum problema com ele?

rafaelob

Defini um parâmetro no GlassFish e resolveu, achei na internet isso.

Valeu!!

Criado 18 de abril de 2012
Ultima resposta 20 de abr. de 2012
Respostas 6
Participantes 2