Problema com Vraptor apos colocar no servidor [RESOLVIDO]
22 respostas
W
well
Tenho uma aplicacao com Vraptor, tudo funciona normal localmente, porem quando coloco no servidor o metodo altera da pau. nao altera e apresenta o seguinte erro:
HTTP Status 405 ---------------------------------------------------------------------------------type Status reportmessage description The specified HTTP method is not allowed for the requested resource ().--------------------------------------------------------------------------------Apache Tomcat/7.0.11
quando vc chama esse metodo, vc esta em uma página q contém um formulário para alterar a inscrição certo?
att,
W
well
Nao altera um formulario completo, mas localmente roda perfeito, mas no servidor na net nao…
W
well
Estava usando a versão 3.3.1 do Vraptor, mudei para a 3.1 e funcionou… nao entendi! vlw
L
Lucas_Cavalcanti
como vc está chamando esse método altera? posta aqui o formulário por favor
W
well
Blz lucas, vou postar, mas alem de trocar as libs, eu coloquei o tomcat 6 novamente, estava com o 7. o que eu nao estava entendendo que era so com o metodo altera… mas localmente rodava…
nao coloquei o form todo pq é grande, coloquei o necessario…
vlw.
L
Lucas_Cavalcanti
o problema é o upload no tomcat 7… o VRaptor dá preferência pra usar o servlet 3 upload (que o tomcat implementa), mas o tomcat 7 tem um bug que impede o upload de funcionar em filtros (o VRaptor é um filtro).
atualize o VRaptor pra última versão e coloque os jars do commons-fileupload que deve funcionar
W
well
Olá Lucas, aquele dia eu nao alterei as libs e deixei as antigas pois tinha que fazer umas coisas no sistema. Mas hoje peguei um projeto Blank do Vraptor, copiei as libs, adicionei as do hibernate-JPA, estou usando o tomcat 6.0.32 e esta dando erro no metodo altera:
20:37:31,500 DEBUG [DefaultResourceTranslator] trying to access /bcis/1008/altera
20:37:31,507 DEBUG [ResourceLookupInterceptor] Method POST is not allowed for requested URI. Allowed Methods are [PUT]
br.com.caelum.vraptor.http.route.MethodNotAllowedException: Method POST is not allowed for requested URI. Allowed Methods are [PUT]
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:109)
at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:82)
at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:59)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:66)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
20:37:31,514 DEBUG [VRaptor ] VRaptor ended the request
se sim, coloque o jar do commons-fileupload no projeto (o upload do servlet 3 do tomcat 7 não funciona com filters).
tirar o enctype deveria funcionar… tire e faça outro teste plz
W
well
Estou com tomcat 6.0.32, o problema nao esta no upload, esta no altera normal, somente o do formulario com imputs e combobox, como vraptor 3.1.3 funciona legal, mais com o 3.3 o metodo altera nao funciona… :(.
L
Lucas_Cavalcanti
habilita o log de debug do VRaptor e posta aqui o que aparece na requisição problemática, por favor
W
well
O log que vc diz é o do log4j, se for está ai…
18:56:26,797 DEBUG [VRaptor ] VRaptor received a new request
18:56:26,818 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
18:56:26,818 DEBUG [DefaultResourceTranslator] trying to access /bcis/1008/altera
18:56:26,819 DEBUG [ResourceLookupInterceptor] Method POST is not allowed for requested URI. Allowed Methods are [PUT]
br.com.caelum.vraptor.http.route.MethodNotAllowedException: Method POST is not allowed for requested URI. Allowed Methods are [PUT]
at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:109)
at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:82)
at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:59)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:66)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
18:56:26,820 DEBUG [VRaptor ] VRaptor ended the request
W
well
Lucas tirei o enctype=“multipart/form-data” estava ali sem necessidade. porem surgi a duvida, pq antes funcionava? vlw desculpa ocupar seu tempo com esse erro…
L
Lucas_Cavalcanti
antes funcionava pq a gente não tinha implementado o upload do Servlet 3. Depois que foi implementado a gente dá preferencia pra usar ele se não tiver o commons-fileupload no classpath.
sem o enctype funciona?
W
well
Não, não, vc entendeu errado, aquele form não era de upload, era de dados apenas nao imagens, mas eu tinha esquecido o enctype ali e dava pau. mas no form de upload da errado se nao tiver…