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,185 INFO [stdout] (MSC service thread 1-4) WARN [MSC service thread 1-4] (CommonsLogger.java:60) - Could not create JarEntryRevision for [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,186 INFO [stdout] (MSC service thread 1-4) java.util.zip.ZipException: error in opening zip file
...........
09:02:22,284 INFO [stdout] (MSC service thread 1-4) WARN [MSC service thread 1-4] (CommonsLogger.java:60) - Could not create JarEntryRevision for [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,284 INFO [stdout] (MSC service thread 1-4) java.util.zip.ZipException: error in opening zip file
......
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.
O que posso fazer para resolver isso.
Olá,
bem, pelo erro
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.
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.
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?
Abraços.
Tentei rodar no jboss 6.0 mas deu erro.
10:10:03,599 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Parse: name=vfs:///home/edion/Innovative_Systems/Projetos/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1317733743498/deploy/SIGEPNR.war state=PreParse mode=Manual requiredState=Parse: org.jboss.deployers.spi.DeploymentException: Error creating managed object for vfs:///home/edion/Innovative_Systems/Projetos/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1317733743498/deploy/SIGEPNR.war
Sobre renomear a idéia é mudar o nome do jar só para tirar struts do meio?
Não é renomear.
é descompactar o jar e compactar novamente. O nome do arquivo não sei se influencia.
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?
O problema não seria com o (CommonsLogger.java:60) ? Conflito de versões, sei lá?
Segundo o Issue Tracker do Struts2, é algo no jar do XWork.
Entre em
https://issues.apache.org/jira/browse/WW-3662
e baixe o “.jar” que tem na seção “Attachments” de lá e substitua o que você tem.
Veja se resolve.
Valeu. Pelo menos achamos (vc achou) a origem do erro.
Fiz o passo a passo:
Substitui o jar do x-work.
adicionei o seguinte codigo no struts.xml
<constant name="struts.convention.exclude.parentClassLoader" value="true" />
<constant name="struts.convention.action.fileProtocols" value="jar,vfs,vfsfile,vfszip" />
<constant name="struts.convention.package.locators" value="actions,action" />
<constant name="struts.convention.package.locators.disable" value="false" />
<constant name="struts.convention.package.locators.basePackage" value="br.mil.marinha.spi.action" />
mas agora o erro é que não consegue encontrar minhas classes de persistencia.
applicationContext.xml
.....
<property name="annotatedClasses">
<list>
<value>br.mil.marinha.spi.model.PostoGradEspec</value>
.....
erro:
13:55:18,311 ERROR [stderr] (MSC service thread 1-7) log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
13:55:18,311 ERROR [stderr] (MSC service thread 1-7) log4j:WARN Please initialize the log4j system properly.
13:55:18,600 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SIGEPNR]] (MSC service thread 1-7) Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.lang.Class[]' for property 'annotatedClasses'; nested exception is java.lang.IllegalArgumentException: Cannot find class [br.mil.marinha.spi.model.PostoGradEspec]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:563) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) [org.springframework.context-3.0.5.RELEASE.jar:]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) [org.springframework.context-3.0.5.RELEASE.jar:]
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) [org.springframework.web-3.0.5.RELEASE.jar:]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) [org.springframework.web-3.0.5.RELEASE.jar:]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) [org.springframework.web-3.0.5.RELEASE.jar:]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3368) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3821) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:70) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.lang.Class[]' for property 'annotatedClasses'; nested exception is java.lang.IllegalArgumentException: Cannot find class [br.mil.marinha.spi.model.PostoGradEspec]
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:467) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:499) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:493) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1371) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1330) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) [org.springframework.beans-3.0.5.RELEASE.jar:]
... 19 more
Caused by: java.lang.IllegalArgumentException: Cannot find class [br.mil.marinha.spi.model.PostoGradEspec]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:293) [org.springframework.core-3.0.5.RELEASE.jar:]
at org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:63) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:416) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:388) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:157) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:111) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:427) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:169) [org.springframework.beans-3.0.5.RELEASE.jar:]
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:447) [org.springframework.beans-3.0.5.RELEASE.jar:]
... 25 more
Caused by: java.lang.ClassNotFoundException: br.mil.marinha.spi.model.PostoGradEspec from [Module "deployment.SIGEPNR.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257) [org.springframework.core-3.0.5.RELEASE.jar:]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:290) [org.springframework.core-3.0.5.RELEASE.jar:]
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.
mas o erro continua.