Deixar Jar no JBoss

6 respostas
V

Pessoal, estou concluindo uma aplicação e até então não havia me atentado a uma coisa: o arquivo WAR está com 20 Mb

isso está acontecendo porque todos os JAR utilizados estão nesse arquivo.

mudei o ant para não gerar c/ os jar e joguei todos na pasta server/default/lib

só que quando inicio o JBoss com o arquivo war (s/ os jar) lá na pasta deploy, ele dá o erro:

2007-07-17 16:30:10,484 INFO  [org.springframework.beans.factory.support.DefaultListableBeanFactory] Destroying singletons in {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [spring-object-factory,welcomeBean,loginBean,logoutBean,beneficioBean,eventoBean,filtroBean,indicadorBean,grpBeneficioBean,periodoBean,grpMonitoradoBean,especialidadeBean,recursoBean,recMonitoradoBean,registroBean,facilitadorRecursoBean,categRecursoBean,tipoRecursoBean,processosBean,processosPontuacaoBean,classificacaoBean,consindicadoresBean,usuarioBean,acessoPrestadorBean,trocaGrupoBean,trocaPeriodoBean,velocityConfigurer,viewResolver,localeResolver,localeChangeInterceptor,messageSource,sessionFactory,hibernateTemplate,hibernateInterceptor,crudDaoTarget,loginDaoTarget,beneficioDaoTarget,eventoDaoTarget,filtroDaoTarget,indicadorDaoTarget,grpBeneficioDaoTarget,periodoDaoTarget,grpMonitoradoDaoTarget,especialidadeDaoTarget,recursoDaoTarget,recMonitoradoDaoTarget,registroDaoTarget,facilitadorRecursoDaoTarget,tipoRecursoDaoTarget,categRecursoDaoTarget,processosDaoTarget,processoPontuacaoDaoTarget,classificacaoDaoTarget,indicadoresDaoTarget,usuarioDaoTarget,crudDao,loginDao,beneficioDao,eventoDao,filtroDao,indicadorDao,grpBeneficioDao,periodoDao,grpMonitoradoDao,especialidadeDao,recursoDao,recMonitoradoDao,registroDao,facilitadorRecursoDao,tipoRecursoDao,categRecursoDao,processosDao,processoPontuacaoDao,classificacaoDao,indicadoresDao,usuarioDao,dataSource,transactionManager,dwrController,urlMapping,beneficioAjax,eventoAjax,filtroAjax,indicadorAjax,grpBeneficioAjax,periodoAjax,grpMonitoradoAjax,especialidadeAjax,recMonitoradoAjax,recursoAjax,registroAjax,usuarioAjax,gaugeAjax]; root of BeanFactory hierarchy}

2007-07-17 16:30:10,484 ERROR [org.springframework.web.context.ContextLoader] Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name loginDao defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Daos.xml]: Cannot resolve reference to bean transactionManager while setting bean property transactionManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name transactionManager defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-DataSource.xml]: Cannot resolve reference to bean sessionFactory while setting bean property sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name transactionManager defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-DataSource.xml]: Cannot resolve reference to bean sessionFactory while setting bean property sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)

at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)

at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)


e no final isso :

— Incompletely deployed packages —
org.jboss.deployment.DeploymentInfo@9d8252db { url=file:/D:/JBoss/jboss-4.0.4.GA/server/default/deploy/pscon.war }
deployer: MBeanProxyExt[jboss.web:service=WebServer]
status: Deployment FAILED reason: URL file:/D:/JBoss/jboss-4.0.4.GA/server/default/tmp/deploy/tmp37958pscon-exp.war/ deployment failed
state: FAILED
watch: file:/D:/JBoss/jboss-4.0.4.GA/server/default/deploy/pscon.war
altDD: null
lastDeployed: 1184700607000
lastModified: 1184700607000
mbeans:

— MBeans waiting for other MBeans —
ObjectName: jboss.web.deployment:war=pscon.war,id=-[telefone removido]
State: FAILED
Reason: org.jboss.deployment.DeploymentException: URL file:/D:/JBoss/jboss-4.0.4.GA/server/default/tmp/deploy/tmp37958pscon-exp.war/ deployment failed

— MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM —
ObjectName: jboss.web.deployment:war=pscon.war,id=-[telefone removido]
State: FAILED
Reason: org.jboss.deployment.DeploymentException: URL file:/D:/JBoss/jboss-4.0.4.GA/server/default/tmp/deploy/tmp37958pscon-exp.war/ deployment failed

Se eu inicalizar o JBoss e depois jogar o war na pasta deploy, o erro é esse:

16:38:13,031 INFO  [DefaultListableBeanFactory] Destroying singletons in {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [spring-object-factory,welcomeBean,loginBean,logoutBean,beneficioBean,eventoBean,filtroBean,indicadorBean,grpBeneficioBean,periodoBean,grpMonitoradoBean,especialidadeBean,recursoBean,recMonitoradoBean,registroBean,facilitadorRecursoBean,categRecursoBean,tipoRecursoBean,processosBean,processosPontuacaoBean,classificacaoBean,consindicadoresBean,usuarioBean,acessoPrestadorBean,trocaGrupoBean,trocaPeriodoBean,velocityConfigurer,viewResolver,localeResolver,localeChangeInterceptor,messageSource,sessionFactory,hibernateTemplate,hibernateInterceptor,crudDaoTarget,loginDaoTarget,beneficioDaoTarget,eventoDaoTarget,filtroDaoTarget,indicadorDaoTarget,grpBeneficioDaoTarget,periodoDaoTarget,grpMonitoradoDaoTarget,especialidadeDaoTarget,recursoDaoTarget,recMonitoradoDaoTarget,registroDaoTarget,facilitadorRecursoDaoTarget,tipoRecursoDaoTarget,categRecursoDaoTarget,processosDaoTarget,processoPontuacaoDaoTarget,classificacaoDaoTarget,indicadoresDaoTarget,usuarioDaoTarget,crudDao,loginDao,beneficioDao,eventoDao,filtroDao,indicadorDao,grpBeneficioDao,periodoDao,grpMonitoradoDao,especialidadeDao,recursoDao,recMonitoradoDao,registroDao,facilitadorRecursoDao,tipoRecursoDao,categRecursoDao,processosDao,processoPontuacaoDao,classificacaoDao,indicadoresDao,usuarioDao,dataSource,transactionManager,dwrController,urlMapping,beneficioAjax,eventoAjax,filtroAjax,indicadorAjax,grpBeneficioAjax,periodoAjax,grpMonitoradoAjax,especialidadeAjax,recMonitoradoAjax,recursoAjax,registroAjax,usuarioAjax,gaugeAjax]; root of BeanFactory hierarchy}

16:38:13,031 ERROR [ContextLoader] Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name loginDao defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Daos.xml]: Cannot resolve reference to bean transactionManager while setting bean property transactionManager; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name transactionManager defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-DataSource.xml]: Cannot resolve reference to bean sessionFactory while setting bean property sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name transactionManager defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-DataSource.xml]: Cannot resolve reference to bean sessionFactory while setting bean property sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name sessionFactory defined in ServletContext resource [/WEB-INF/configuracoes/Hibernate/Contexto-Hibernate-Pojos.xml]: Invocation of init method failed; nested exception is org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

org.springframework.context.ApplicationContextException: Unable to register class br.com.profsyst.pscon.model.pj.Menu; nested exception is java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

Caused by:

java.lang.ClassNotFoundException: No ClassLoaders found for: br.com.profsyst.pscon.model.pj.Menu

at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)

at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)

e não aparece nada como a 2ª parte de cima…

se eu colocar os jar no war ele funciona… mas não quero que toda vez que tiver uma atualização enviar 20Mb pro cliente

alguém poderia ajudar ???

6 Respostas

P
  1. Ao tirar os jars do ear e passar para o lib vc. troca seis por meia dúzia. Algum motivo em particular para isto ?

  2. O JBoss que vc. está a usar ou sua aplicação estão configurados para o modo J2EE-compliant ? Se estiver isto significa que os classloaders estarão isolados mesmo e as classes da aplicação não “enxergarão” as classes no lib.

Meu conselho: Fique com o ear de 20M ou, de forma alternativa, passe a usar o ear explodido.

V
  1. Pq é complicado a cada alteração boba ter q mandar os 20Mb pro cara… seria mais interessante mandar um de 500kb (é o tamanho que fica o war s/ os jar)

  2. aí eu não sei… to usando a versão 4.0.4.GA do JBoss… do jeito q baixei to usando, não mexi em nenhuma configuração…

deixa eu ver se entendi, quando está como compliant os jar precisam obrigatoriamente estar no war ?
se for isso, tem como configurar pra não ser assim ?

V

e aí pessoal ??

não tem como deixar os jar separado do war ???

Abdon

Ola, é possivel sim, basta vc colocar os jars em JBOSS_HOME\Server<Seu Server all defaul ou minimal>\lib

é so colocar os jar la dentro que já era, vc pode tirar os jar do seu .war .ear .whatever.

so que tome cuidado quando for colocar em produção, de não esquecer nenhum jar novo ou sei lá, pode dar muita dor de cabeça.

V

então, eu tentei fazer isso, mas aí ele dá erro de classloader…

P

Já tentou deixar dentro do war e trabalhar com ear explodido ?

Funciona de forma idêntic ao empacotado e, desta forma, se vc. tiver uma atualização, pode mandá-la como um zip a ser explodida dentro da estrutura.

Criado 17 de julho de 2007
Ultima resposta 2 de ago. de 2007
Respostas 6
Participantes 3