estou na terceira fase de sistemas e comecei um estagio esse mês. O grande problema é que ainda não tenho muita experiência na área
e meu gestor já meu passou uma pedreira, ele quer eu eu faça um crud em JPA+SPRING+STRUTS+JQUERY…
O JPA eu já conheço e o Jquery pelo que vi não tem mistério, porém o struts+spring estou passando trabalho,
pois está difícil conseguir material bom na internet, tentei utilizar aquela apostila da Caelum fj21, mas ela esta com muitas
coisas “deprecated” ai esta dificultando um pouco minha vida.
Alguém tem algum material legal sobre isso? Ou poderia pelo menos me indicar onde procurar?
Rapaz, qual versão do Struts você está utilizando? A boa (Struts 2) ou a mais ou menos (Struts 1)?
Se for a versão 2, não tem mistério também. Eu costumo trabalhar com ele e o Spring Framework usando annotations (sim!) e considero relativamente fácil. Se for isto, me avisa que tenho um material, posso postar até uma aplicação de exemplo.
Tem vídeos no site que ensinam a fazer… Ele usa Spring e Hibernate internamente…[/quote]
Ele quer que eu apresenta pra ele como fiz, ai não sei se essa é a melhor maneira…
[quote=drsmachado]Rapaz, qual versão do Struts você está utilizando? A boa (Struts 2) ou a mais ou menos (Struts 1)?
Se for a versão 2, não tem mistério também. Eu costumo trabalhar com ele e o Spring Framework usando annotations (sim!) e considero relativamente fácil. Se for isto, me avisa que tenho um material, posso postar até uma aplicação de exemplo.[/quote]
Desculpe a minha ignorância, é struts2 sim, nossa se vc puder me passar esse material ficaria eternamente grato.
Bom, segue aí o projeto.
Como é uma versão “beta” ele não está 100%, mas vai servir pra que você entenda melhor a integração Spring + Struts 2.
Como não achei o que eu queria enviar, mando um que contém a integração do Struts 2 + Spring Framework + iReport + JFreeChart + Hibernate.
Mando, também, a lista de jars que utilizei.
O erro 404 é apresentado quando você tem algum erro no carregamento do Tomcat, causado por problemas no projeto ou por que a URL que está sendo solicitada não existe.
Pode postar o stackTrace da inicialização do Tomcat?
Dez 13, 2012 10:35:41 AM org.apache.catalina.core.AprLifecycleListener init
Informações: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre7/bin/client;C:/Arquivos de programas/Java/jre7/bin;C:/Arquivos de programas/Java/jre7/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Arquivos de programas\SSH Communications Security\SSH Secure Shell;C:\Arquivos de programas\eclipse-jee-indigo-SR2-win32\eclipse;;.
Dez 13, 2012 10:35:41 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
Advertência: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Biblioteca' did not find a matching property.
Dez 13, 2012 10:35:41 AM org.apache.coyote.AbstractProtocol init
Informações: Initializing ProtocolHandler ["http-bio-8080"]
Dez 13, 2012 10:35:41 AM org.apache.coyote.AbstractProtocol init
Informações: Initializing ProtocolHandler ["ajp-bio-8009"]
Dez 13, 2012 10:35:41 AM org.apache.catalina.startup.Catalina load
Informações: Initialization processed in 507 ms
Dez 13, 2012 10:35:41 AM org.apache.catalina.core.StandardService startInternal
Informações: Starting service Catalina
Dez 13, 2012 10:35:41 AM org.apache.catalina.core.StandardEngine startInternal
Informações: Starting Servlet Engine: Apache Tomcat/7.0.33
Dez 13, 2012 10:35:47 AM org.apache.catalina.core.ApplicationContext log
Informações: No Spring WebApplicationInitializer types detected on classpath
Dez 13, 2012 10:35:48 AM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
Informações: Parsing configuration file [struts-default.xml]
Dez 13, 2012 10:35:48 AM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
Informações: Parsing configuration file [struts-plugin.xml]
Dez 13, 2012 10:35:48 AM com.opensymphony.xwork2.util.logging.commons.CommonsLogger error
Grave: Dispatcher initialization failed
Unable to load configuration. - bean - jar:file:/C:/Documents%20and%20Settings/israel.teixeira/Meus%20documentos/Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Biblioteca/WEB-INF/lib/struts2-gxp-plugin-2.3.7.jar!/struts-plugin.xml:8:162
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:71)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load bean: type:org.apache.struts2.views.gxp.inject.InjectedObjectContainer class:org.apache.struts2.views.gxp.inject.InjectedObjectContainer - bean - jar:file:/C:/Documents%20and%20Settings/israel.teixeira/Meus%20documentos/Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Biblioteca/WEB-INF/lib/struts2-gxp-plugin-2.3.7.jar!/struts-plugin.xml:8:162
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:245)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:68)
... 18 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts2.views.gxp.inject.InjectedObjectContainer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:216)
... 21 more
Dez 13, 2012 10:35:48 AM org.apache.catalina.core.StandardContext filterStart
Grave: Exception starting filter struts2
Unable to load configuration. - bean - jar:file:/C:/Documents%20and%20Settings/israel.teixeira/Meus%20documentos/Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Biblioteca/WEB-INF/lib/struts2-gxp-plugin-2.3.7.jar!/struts-plugin.xml:8:162
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:483)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: Unable to load configuration. - bean - jar:file:/C:/Documents%20and%20Settings/israel.teixeira/Meus%20documentos/Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Biblioteca/WEB-INF/lib/struts2-gxp-plugin-2.3.7.jar!/struts-plugin.xml:8:162
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:71)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
... 16 more
Caused by: Unable to load bean: type:org.apache.struts2.views.gxp.inject.InjectedObjectContainer class:org.apache.struts2.views.gxp.inject.InjectedObjectContainer - bean - jar:file:/C:/Documents%20and%20Settings/israel.teixeira/Meus%20documentos/Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Biblioteca/WEB-INF/lib/struts2-gxp-plugin-2.3.7.jar!/struts-plugin.xml:8:162
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:245)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:68)
... 18 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts2.views.gxp.inject.InjectedObjectContainer
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:152)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:216)
... 21 more
Dez 13, 2012 10:35:48 AM org.apache.catalina.core.StandardContext startInternal
Grave: Error filterStart
Dez 13, 2012 10:35:48 AM org.apache.catalina.core.StandardContext startInternal
Grave: Context [/Biblioteca] startup failed due to previous errors
Dez 13, 2012 10:35:48 AM org.apache.coyote.AbstractProtocol start
Informações: Starting ProtocolHandler ["http-bio-8080"]
Dez 13, 2012 10:35:48 AM org.apache.coyote.AbstractProtocol start
Informações: Starting ProtocolHandler ["ajp-bio-8009"]
Dez 13, 2012 10:35:48 AM org.apache.catalina.startup.Catalina start
Informações: Server startup in 7090 ms
Dez 13, 2012 10:38:04 AM org.apache.catalina.core.StandardServer await
Informações: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol pause
Informações: Pausing ProtocolHandler ["http-bio-8080"]
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol pause
Informações: Pausing ProtocolHandler ["ajp-bio-8009"]
Dez 13, 2012 10:38:04 AM org.apache.catalina.core.StandardService stopInternal
Informações: Stopping service Catalina
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol stop
Informações: Stopping ProtocolHandler ["http-bio-8080"]
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol stop
Informações: Stopping ProtocolHandler ["ajp-bio-8009"]
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol destroy
Informações: Destroying ProtocolHandler ["http-bio-8080"]
Dez 13, 2012 10:38:04 AM org.apache.coyote.AbstractProtocol destroy
Informações: Destroying ProtocolHandler ["ajp-bio-8009"]
Segue log do tomCat abrindo esse projeto, vi que ele aponta alguns erros.
[code]Dez 13, 2012 11:11:38 AM org.apache.catalina.startup.HostConfig deployDescriptor
Informações: Deploying configuration descriptor C:\Documents and Settings\israel.teixeira\Meus documentos\Eclipse\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\ExemploStruts2.xml
Dez 13, 2012 11:11:38 AM org.apache.catalina.startup.SetContextPropertiesRule begin
Advertência: [SetContextPropertiesRule]{Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:ExemploStruts2’ did not find a matching property.
Dez 13, 2012 11:11:38 AM com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
Informações: Parsing configuration file [struts-default.xml]
Dez 13, 2012 11:11:39 AM org.apache.catalina.core.StandardContext filterStart
Grave: Exception starting filter struts2
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:211)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:215)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:68)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:471)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:103)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
… 26 more
Dez 13, 2012 11:11:39 AM org.apache.catalina.core.StandardContext startInternal
Grave: Error filterStart
Dez 13, 2012 11:11:39 AM org.apache.catalina.core.StandardContext startInternal
Grave: Context [/ExemploStruts2] startup failed due to previous errors[/code]
E segue print do meu projeto, caso possa ser algum erro de iniciante.
Tenho minha classe, com duas actions, uma para redirecionar para um form de cadastro e outra para um listar.jsp normal.
Os dois metodos estao iguais, somente redirecionando para outra pagina, porem a action de cadastro redireciona corretamento e
o do listar da o seguinte erro.
Alguém sabe oque normalmente ocasiona isso? Eu estou sem o fonte aqui, mas qq coisa eu posto depois.
Mas na vdd entendi sim, porém já dei algumas revisadas e não encontro o erro, ate pq só uma não funciona…
O web.xml esta correto, pq eh o q ta em todos projetos que eu achei na net.
E o struts.xml “aparentemente” esta correto, ate pq ele ta mapeando uma action só a outra que não…
Bom alguém pode passar pelo mesmo problema, então queria deixar aqui a solução.
Não foi,web.xml, struts.xml, aplication-context, nada disso, foi uma coisa muito mais simples que nem passou pela minha cabeça.
Problema de biblioteca, todas a bibliotecas estavam corretas, mas eu simplesmente tirei todas libs, dei um clean no projeto,tomcat,etc
e adicionei as libs novamente e funcionou =)