Resolveu aquele problema perfeitamente.
Acontece que hoje começou a acusar outro erro, não está encontrando um Enum OPTIONS na classe HttpMethods
Segue o stackTrace:
java.lang.IllegalArgumentException: HTTP Method not known: OPTIONS
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:58)
at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:51)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:64)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
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:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at br.com.locaweb.tomcat.LocaWebValve.invoke(LocaWebValve.java:134)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:686)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: No enum const class br.com.caelum.vraptor.resource.HttpMethod.OPTIONS
at java.lang.Enum.valueOf(Enum.java:192)
at br.com.caelum.vraptor.resource.HttpMethod.valueOf(HttpMethod.java:31)
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:55)
... 26 more
Listando os Enuns de HttpMethod pelo Eclipse, realmente não existe esse valor na classe que está dentro do jar.
Sim, realmente. Esse é o problema, na aplicação nós não utilizamos o método OPTIONS, só usamos GET’s e POST’s.
Não exatamente,
o servidor que está acontecendo o erro só serve alguns recursos para outros servidores nossos (e-mail e armazenamento de alguns arquivos) e também serve download dos arquivos para os usuários.
Quando o recurso é acessado pelos nossos servidores utilizamos um POST via HttpClient, e o download é um download comum pelo browser.
Existem algums ShellScripts que também acessam esse servidor para poder converter alguns arquivos, acessos esses que são feitos por wget para baixar o arquivo, e curl para enviar por POST o arquivo já convertido.
Nennhuma requisição ajax é feita para esse servidor.
Liguei agora o log do VRaptor em modo DEBUG e obtive o seguinte:
2010-06-15 10:34:49,539 [TP-Processor22] DEBUG br.com.caelum.vraptor.VRaptor - VRaptor received a new request
2010-06-15 10:34:49,541 [TP-Processor22] DEBUG br.com.caelum.vraptor.core.DefaultRequestExecution - executing stack DefaultRequestExecution
2010-06-15 10:34:49,546 [TP-Processor22] DEBUG br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler - Invoking interceptor ResourceLookupInterceptor
2010-06-15 10:34:49,546 [TP-Processor22] DEBUG br.com.caelum.vraptor.http.DefaultResourceTranslator - trying to access /arquivo/
Essa thread 22 é a única que não tem o log “VRaptor ended the request” e a próxima linha depois do “trying to access /arquivo/” já é a exception que eu postei anteriormente.
E não existe nenhum método mapeado para essa URI e também nenhum lugar da aplicação requisita esse endereço.
Em nenhum lugar na aplicação é feita requisição pra esse endereço que acusou no log.
E como esse é um servidor de serviços, e nos servidores que são acessíveis pelos usuários a gente tem em média 9 requisições por segundo eu não consegui identificar de onde vem essa requisição.
Tenho esse problema quando uso o Ms-Excel para consumir informações via Web Query, consumo uma tabela simples em html, sou iniciante no VRaptor e gostaria de saber como faço para implementar esse método, pode dar uma dica?
Estou usando o VRaptor 3.4.0
java.lang.IllegalArgumentException: HTTP Method not known: OPTIONS
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:58)
at br.com.vw.intercepts.Error404.tryMovePermanentlyTo(Error404.java:39)
at br.com.vw.intercepts.Error404.couldntFind(Error404.java:28)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:71)
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.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
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:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
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.IllegalArgumentException: No enum constant br.com.caelum.vraptor.resource.HttpMethod.OPTIONS
at java.lang.Enum.valueOf(Unknown Source)
at br.com.caelum.vraptor.resource.HttpMethod.valueOf(HttpMethod.java:31)
at br.com.caelum.vraptor.resource.HttpMethod.of(HttpMethod.java:55)
... 32 more