Migrar aplicação Struts 2 do tomcat 7 para o Jboss 7
10 respostas
edysnipes
Bom dia.
Estou tentando migrar uma aplicação desenvolvida em struts 2 do Tomcat 7 para o Jboss 7. O motivo dessa migração é o crescimento do sistema e questões de segurança.
Simplesmente tento fazer o deploy do war pelo eclipse mesmo no jboss 7. O estranho é que o erro está em ler qualquer jar do framework struts 2.
09:02:22,185INFO[stdout](MSCservicethread1-4)WARN[MSC service thread 1-4](CommonsLogger.java:60)-CouldnotcreateJarEntryRevisionfor[vfs:/home/edion/Innovative%20Systems/Server/jboss-as-web-7.0.2.Final/standalone/deployments/SIGEPNR.war/WEB-INF/lib/struts2-core-2.2.3.1]!09:02:22,186INFO[stdout](MSCservicethread1-4)java.util.zip.ZipException:errorinopeningzipfile...........09:02:22,284INFO[stdout](MSCservicethread1-4)WARN[MSC service thread 1-4](CommonsLogger.java:60)-CouldnotcreateJarEntryRevisionfor[vfs:/home/edion/Innovative%20Systems/Server/jboss-as-web-7.0.2.Final/standalone/deployments/SIGEPNR.war/WEB-INF/lib/struts2-spring-plugin-2.2.3.1]!09:02:22,284INFO[stdout](MSCservicethread1-4)java.util.zip.ZipException:errorinopeningzipfile......
O mesmo erro para todas os jars do struts 2. No fim o deploy é até finalizado, carrego a página inicial do projeto porém ao chamar a action do login dá erro pois creio que as libs necessárias não foram carregadas.
java.util.zip.ZipException: error in opening zip file
Parece que o JBoss considerou os arquivos como corrompidos. Tente pegar outros e substituir pra ver o que acontece.
Abraços.
edysnipes
Obrigado pelo retorno jyoshiriro, ta complicado isso.
Pesquisei ontem e verifiquei que poderia ser um problema na versão do struts. Troquei a 2.2.1.X pela 2.2.3.x e o erro continua. Com isso já alterei as libs e o erro continua. Eu só postei 2 mas dá pau em todas as libs do struts.
jyoshiriro
Bem, aqui onde trabalho usamos Struts2 com JBoss.
Mas é o JBoss 4.x por isso não há incompatibilidade.
Bem, mas já que o JBoss acusa que é problema na descompactação do “.jar”, eu tentaria uma “gambiarra”: descompactaria o .jar e “ziparia” de novo renomeando para “.jar”. Vai que cola?
Sobre renomear a idéia é mudar o nome do jar só para tirar struts do meio?
jyoshiriro
Não é renomear.
é descompactar o jar e compactar novamente. O nome do arquivo não sei se influencia.
edysnipes
jyoshiriro, não resolveu.
Extrai e compactei novamente o jar do core do struts 2 e o mesmo erro continua. Se eu colocar essas jar na pasta lib do jboss vai fazer alguma diferença?
edysnipes
O problema não seria com o (CommonsLogger.java:60) ? Conflito de versões, sei lá?
jyoshiriro
Segundo o Issue Tracker do Struts2, é algo no jar do XWork.
13:55:18,311ERROR[stderr](MSCservicethread1-7)log4j:WARNNoappenderscouldbefoundforlogger(org.springframework.web.context.ContextLoader).13:55:18,311ERROR[stderr](MSCservicethread1-7)log4j:WARNPleaseinitializethelog4jsystemproperly.13:55:18,600ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SIGEPNR]](MSCservicethread1-7)Exceptionsendingcontextinitializedeventtolistenerinstanceofclassorg.springframework.web.context.ContextLoaderListener:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sessionFactory'definedinServletContextresource[/WEB-INF/applicationContext.xml]:Initializationofbeanfailed;nestedexceptionisorg.springframework.beans.TypeMismatchException:Failedtoconvertpropertyvalueoftype'java.util.ArrayList'torequiredtype'java.lang.Class[]'forproperty'annotatedClasses';nestedexceptionisjava.lang.IllegalArgumentException:Cannotfindclass[br.mil.marinha.spi.model.PostoGradEspec]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)[org.springframework.context-3.0.5.RELEASE.jar:]atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)[org.springframework.context-3.0.5.RELEASE.jar:]atorg.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)[org.springframework.web-3.0.5.RELEASE.jar:]atorg.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)[org.springframework.web-3.0.5.RELEASE.jar:]atorg.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)[org.springframework.web-3.0.5.RELEASE.jar:]atorg.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3368)[jbossweb-7.0.1.Final.jar:7.0.2.Final]atorg.apache.catalina.core.StandardContext.start(StandardContext.java:3821)[jbossweb-7.0.1.Final.jar:7.0.2.Final]atorg.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70)[jboss-as-web-7.0.2.Final.jar:7.0.2.Final]atorg.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)atorg.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]atjava.lang.Thread.run(Thread.java:662)[:1.6.0_26]Causedby:org.springframework.beans.TypeMismatchException:Failedtoconvertpropertyvalueoftype'java.util.ArrayList'torequiredtype'java.lang.Class[]'forproperty'annotatedClasses';nestedexceptionisjava.lang.IllegalArgumentException:Cannotfindclass[br.mil.marinha.spi.model.PostoGradEspec]atorg.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:467)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:499)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:493)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1371)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1330)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)[org.springframework.beans-3.0.5.RELEASE.jar:]...19moreCausedby:java.lang.IllegalArgumentException:Cannotfindclass[br.mil.marinha.spi.model.PostoGradEspec]atorg.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:293)[org.springframework.core-3.0.5.RELEASE.jar:]atorg.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:63)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:416)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:388)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:157)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:111)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:427)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:169)[org.springframework.beans-3.0.5.RELEASE.jar:]atorg.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:447)[org.springframework.beans-3.0.5.RELEASE.jar:]...25moreCausedby:java.lang.ClassNotFoundException:br.mil.marinha.spi.model.PostoGradEspecfrom[Module "deployment.SIGEPNR.war:main" from Service Module Loader]atorg.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)atorg.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)atorg.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)atorg.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)atorg.springframework.util.ClassUtils.forName(ClassUtils.java:257)[org.springframework.core-3.0.5.RELEASE.jar:]atorg.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:290)[org.springframework.core-3.0.5.RELEASE.jar:]
edysnipes
Na pressa para testar não li direito. Acho que esse bug ainda está em aberto. Desfiz as alterações e somente deixei a lib.