Mensagens enviadas por: bland
Índice dos Fóruns » Perfil de bland » Mensagens enviadas por bland
Autor Mensagem
Olá pessoal!

Estou novamente aqui para reportar um erro que estou encontrando quando tento executar o RESTFulie no servidor do meu cliente.

Vou contextualizar para ficar mais fácil o entendimento do erro.

Eu tenho o meu serviço no VRaptor e disponibilizo este para um cliente em RESTFulie. Até então, tudo bem. Este cliente estava executando os testes usando uma classe standalone e estava tudo certo.

Após vermos que a comunicação estava acontecendo, fizemos a "migração" deste para a aplicação propriamente dita, ou seja, incorporamos a mesma chamada (digo copy/paste) para dentro do projeto que usará o meu serviço no VRaptor (abaixo tem o exemplo do código de chamada)...

... e esta passou a dar erro no momento da recuperação do RestClient, ou seja, nessa linha:

Nem chega a registrar os tipos. Vendo que este erro passou a acontecer quando fizemos a mudança da chamada para dentro do servidor de aplicação (incorporado ao projeto propriamente dito), fizemos o teste com o standalone novamente, e esse não apresentou erro algum. O servidor de aplicação deste projeto é o Tomcat versão 5.5.

O erro apresentado é este:
10:24:42,787 ERROR DispatchActionAb:250 - Exception :Unable to extend type br.com.caelum.restfulie.mediatype.EnhancedList
java.lang.IllegalStateException: Unable to extend type br.com.caelum.restfulie.mediatype.EnhancedList
at br.com.caelum.restfulie.relation.Enhancer.enhanceResource(Enhancer.java:24)
at br.com.caelum.restfulie.mediatype.XStreamHelper.getXStream(XStreamHelper.java:120)
at br.com.caelum.restfulie.mediatype.JsonMediaType.<init>(JsonMediaType.java:33)
at br.com.caelum.restfulie.http.DefaultRestClient.<init>(DefaultRestClient.java:55)
at br.com.caelum.restfulie.Restfulie.custom(Restfulie.java:45)
at br.scmba.prontus.dispensacao.view.action.DispensacaoDispatchAction.executeWS(DispensacaoDispatchAction.java:1013)
at br.scmba.prontus.dispensacao.view.action.DispensacaoDispatchAction.salvarBaixaSolicitacao(DispensacaoDispatchAction.java:51
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:18
at net.sf.jguard.jee.authentication.http.AccessFilter.authorize(AccessFilter.java:536)
at net.sf.jguard.jee.authentication.http.AccessFilter.doFilter(AccessFilter.java:292)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:18
at br.scmba.prontus.core.util.EncodingFilter.doFilter(EncodingFilter.java:26)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:18
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:19
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:18
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:52
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:619)
Caused by: javassist.NotFoundException: br.com.caelum.restfulie.mediatype.EnhancedList
at javassist.ClassPool.get(ClassPool.java:436)
at br.com.caelum.restfulie.relation.Enhancer.enhanceResource(Enhancer.java:1
... 44 more

Estou com o fonte do projeto e vi que ao executar o standalone o Restfulie faz o registro corretamente da classe EnhancedList corretamente, mas não consegui entender o motivo pelo qual ele não consegue fazer o mesmo dentro do servidor de aplicação.

Se puderem me ajudar com mais esse problema, ficarei grato.

Desde então, obrigado!

Abraço!
Rafael, obrigado!

Lucas, porque deveria se existe um método chamado create que não tem a necessidade de passar parâmetros? Então esse método não deveria existir, é isso?
Lucas,

Obrigado pela ajuda. Resolveu o meu problema. Tive que remover as anotações @XStreamAsAttribute e @XStreamImplicit das minhas classes que trafegam pelo serviço e adicionar esse CustomXStreamXMLDeserializer ao meu projeto.

Com essas mudanças eu consegui obter o objeto todo preenchido do lado do servidor, mas, como teste, eu criei no servidor um retorno como o abaixo:


E esse retorno está gerando no lado cliente o seguinte erro:
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at br.com.caelum.restfulie.feature.FollowRedirects.process(FollowRedirects.java:27)
at br.com.caelum.restfulie.request.ResponseChain.next(ResponseChain.java:21)
at br.com.caelum.restfulie.request.RequestStack.process(RequestStack.java:3
at br.com.caelum.restfulie.request.RequestChain.next(RequestChain.java:20)
at br.com.caelum.restfulie.request.RequestStack.process(RequestStack.java:2
at br.com.caelum.restfulie.http.DefaultHttpRequest.sendPayload(DefaultHttpRequest.java:3
at br.com.caelum.restfulie.http.DefaultHttpRequest.post(DefaultHttpRequest.java:85)
at testes.Main.testWS(Main.java:153)
at testes.Main.main(Main.java:40)


Pelo que andei pesquisando e depurando, o erro acontece porque ele espera um path como parâmetro no header para poder fazer o redirect para uma URI. Como não passei nenhuma URI, está dando erro no seguinte ponto da classe FollowRedirects ( linha 27 ):

Ou seja, não existe qualquer teste para saber se existe ou não o "Location" no header, o que estaria levando ao erro acima.

Muito obrigado pela ajuda!

Abraço!
Olá pessoal,

Estou tendo problemas para fazer um post tendo a seguinte estrutura de objetos:

- LoteDispensacaoDto


- LoteDispensacaoSolicitacaoDto


- ItemAprazamentoHorarioDto


- ItemAprazamentoDispensacaoDto


Vale ressaltar que a mesma estrutura de classes que tenho no meu cliente eu tenho no meu servidor; e busquei utilizar as anotações @XStreamAsAttribute e @XStreamImplicit para tentar resolver o meu problema, mas vi que não consegui.

A chamada para o meu serviço é:


Na minha classe do serviço ( anotado com @Resource ) eu tenho o método:


Esse objeto passado como parâmetro no método post possui toda a estrutura de objetos dentro dele preenchida. Fiz uma inspeção no XML que está sendo passado na requisição e vai o exemplo:


Então, aparentemente, está fazendo o processo corretamente, só que com um detalhe, não está considerando as listas dentro dos objetos. Ou seja, o objeto principal ( LoteDispensacaoDto ) possui uma lista do tipo LoteDispensacaoSolicitacaoDto, que também tem uma lista do tipo ItemAprazamentoHorarioDto, que, por sinal, também tem uma lista do tipo ItemAprazamentoDispensacaoDto.

Após a chamada do meu cliente, já no servidor, está sempre acontecendo este erro:

09/02/2011 12:01:35 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
com.thoughtworks.xstream.converters.ConversionException: itemAprazamentoHorario : itemAprazamentoHorario : itemAprazamentoHorario : itemAprazamentoHorario
---- Debugging information ----
message : itemAprazamentoHorario : itemAprazamentoHorario
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : itemAprazamentoHorario : itemAprazamentoHorario
class : br.com.scmba.ws.lancamento.item.conta.prontus.domain.entity.LoteDispensacaoDto
required-type : java.util.ArrayList
path : /loteDispensacao/loteDispensacaoSolicitacao/itemAprazamentoHorario
line number : 1
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:246)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:21
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:861)
at br.com.caelum.vraptor.deserialization.XStreamXMLDeserializer.deserialize(XStreamXMLDeserializer.java:55)
at br.com.caelum.vraptor.interceptor.DeserializingInterceptor.intercept(DeserializingInterceptor.java:87)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:4
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.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
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.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.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.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:89)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
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:5
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:12
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)


A sensação que tenho é que ele não está conseguindo fazer a interpretação correta de uma lista dentro de outra lista, ou de qualquer lista dentro de um objeto passado por parâmetro.

Fazendo uma inspeção percebi que o XStream sempre cria um Map para fazer o de-para entre as classes anotadas com o tipo dela. E no meu exemplo ele esta associando, pelo que percebi, o tipo java.util.ArrayList a classe anotada LoteDispensacaoSolicitacaoDto ( por isso tentei utilizar a anotação @XStreamImplicit para sanar o problema ), pois essa classe está contida na classe LoteDispensacaoDto como um java.util.List.

Já busquei ver esse problema na internet mas não consegui encontrar a resolução do problema. Se puderem me ajudar...

Obrigado de antemão.

Abraço!
Rafael, obrigado!

Lucas, baixei pelo GitHub a versão beta4.

Tenho um novo problema. Fiz a implementação que você sugeriu:


Só que eu estou tendo um problema no retorno do ApacheResponse.getContent(), que está me retornando "" (vazio). Ou seja, isso está impactando na desserialização do objeto que está sendo passado pelo servidor.

Saberia dizer como posso resolver esse problema?

Obrigado mais uma vez.

Abraço!
Lucas,

Mais uma vez obrigado pela ajuda, porém, acho que não entendi muito bem o que disse.

Fiz uma busca em todas as pastas do link que me passou e não encontrei a versão beta4, nem mesmo no link do projeto: http://code.google.com/p/restfulie/downloads/list

Onde estaria essa lib? Existe algum repositório para ela?

Muito obrigado.

Abraço!
Lucas,

Eu já tinha visto essa classe, mas o método Restfulie.custom() não consta na lib que tenho na minha aplicação (restfulie-java-client-1.0.0-beta2.jar).

Eu consegui de uma outra forma, talvez até menos elegante:


Mas qual seria a maneira correta? Vi que com a utilização da classe de exemplo você registra de uma única vez as diversas classes que você irá utilizar. Portanto, como proceder já que o método custom() não existe?

Abraço e obrigado!
Lucas,

Acho que estou me sentindo um pouco perdido e gostaria da sua ajuda.

Criei um serviço no servidor onde o cliente é:


E o serviço...


E criei no meu cliente a classe:


Depois de executar esse teste por algumas vezes, o fiz usando o Debug e quando faço o inspect dessa linha:

está me retornando um erro:
com.thoughtworks.xstream.mapper.CannotResolveClassException: client : client
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:6
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:8
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:96)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:3
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:845)
at br.com.caelum.restfulie.XStreamDeserializer.fromXml(XStreamDeserializer.java:49)
at br.com.caelum.restfulie.http.DefaultResponse.getResource(DefaultResponse.java:7
at br.com.caelum.restfulie.EntryPointService.get(EntryPointService.java:137)
at br.com.scmba.ws.lancamento.item.conta.genhio.domain.controller.ExampleTests.shouldBeTheSameClient(ExampleTests.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:641)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:677)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:850)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1154)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:110
at org.testng.TestRunner.privateRun(TestRunner.java:737)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
at org.testng.SuiteRunner.run(SuiteRunner.java:221)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1027)
at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
at org.testng.TestNG.run(TestNG.java:896)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:89)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:144)


O que posso estar fazendo de errado?

Obrigado!!!
Hey guys,

Tenho uma dúvida quanto a utilização do RESTFullie. Eu estou fazendo a implementação de um WebService para a integração entre dois projetos. Porém, lendo um pouco, vi que posso utilizar o vRaptor, com o RESTFullie, para solucionar o mesmo problema de integração de forma muito mais elegante.

A dúvida seria: como fazer o consumo de um serviço RESTFull (similar ao consumo de um serviço de um WebService) usando o RESTFullie?

Fiz algumas pesquisas e não achei nada ligado. Encontrei um exemplo do Adriano Almeida no GitHub mas nada muito claro de como fazer isso. Hoje eu tenho alguns frameworks que geram as classes com base nos .wsdl, ou seja, eu teria algo parecido com a utilização do RESTFullie? Ou gerar o cliente na mão, criando classe a classe? Como seria isso?

Obrigado.

Abraço.

Fabiano Almeida.
Lucas,

Muito obrigado pela ajuda. Estava com o @Resource errado. Fiz a mudança e funcionou.

Um grande abraço!
Lucas,

Muito bom cara. Ao menos não está mais dando NPE.

Porém, agora está dando um erro de HTTP Status 404 - {URL_APLICACAO}/locals/list

Ou seja, não está exibindo nada. Após iniciar a aplicação eu limpei todo o console, pelo Eclipse, e digitei a URL acima. O log que me é exibido é este:
14:52:17,231 DEBUG [VRaptor ] VRaptor received a new request
14:52:17,231 DEBUG [RequestContextListener] Bound request context to thread: [VRaptorRequest org.apache.catalina.connector.RequestFacade@65394b]
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'br.com.caelum.vraptor.http.EncodingHandlerFactory'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'encodingHandlerFactory'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Creating instance of bean 'defaultRequestExecution'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Creating instance of bean 'defaultInterceptorStack'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'defaultInterceptorHandlerFactory'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Finished creating instance of bean 'defaultInterceptorStack'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Finished creating instance of bean 'defaultRequestExecution'
14:52:17,231 DEBUG [DefaultRequestExecution] executing stack DefaultRequestExecution
14:52:17,231 DEBUG [DefaultListableBeanFactory] Creating instance of bean 'nullMultipartInterceptor'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Finished creating instance of bean 'nullMultipartInterceptor'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Creating instance of bean 'resourceLookupInterceptor'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'defaultResourceTranslator'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Creating instance of bean 'defaultMethodInfo'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Finished creating instance of bean 'defaultMethodInfo'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'defaultResourceNotFoundHandler'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'defaultMethodNotAllowedHandler'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Returning cached instance of singleton bean 'VRaptorRequestProvider'
14:52:17,231 DEBUG [DefaultListableBeanFactory] Finished creating instance of bean 'resourceLookupInterceptor'
14:52:17,231 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
14:52:17,231 DEBUG [DefaultResourceTranslator] trying to access /locals/list
14:52:17,231 DEBUG [RequestContextListener] Cleared thread-bound request context: [VRaptorRequest org.apache.catalina.connector.RequestFacade@65394b]
14:52:17,231 DEBUG [VRaptor ] VRaptor ended the request

Pelo log, aparentemente está tudo certo, ou seja, a página deveria ser exibida. Algo muito simples, ao meu ver. Mas, nada. Poderia me dar uma dica do que pode ser? Devo mudar o @Path do meu método? Ao fazer este teste, o meu método estava assim com @Get e o @Path( "/locals/list" ).

Muito obrigado pela sua ajuda Lucas.

Um grande abraço.
Lucas,

Tenho três, que são:

E tenho ainda um outro, que está como teste, que é o:

Fora isso eu tenho algumas configurações de context-param (log4j e os xmls do Spring), servlet e servlet-mapping.

Obrigado pela ajuda.

Abraço!
Fala Lucas,

Não tem nem porque pedir desculpas. De antemão, obrigado pela ajuda.

Como não sabia exatamente o que você quis dizer com
comecinho dos logs de debug do VRaptor

Eu posto em anexo o log inteiro do start da aplicação.

Um abraço e obrigado mais uma vez.
Washington,

Para piorar a situação, após eu modificar o log4j.properties e levantar a aplicação (onde estoura o erro) a última linha apresentada é essa:
09:25:47,409 DEBUG [VRaptorApplicationContext] Cache miss for class br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor

Ou seja, aparentemente, tudo normal. Muito estranho.
O meu log4j.properties ficou assim:

Baixei o projeto que você citou do site do vRaptor e consegui rodá-lo. E é isso que está me deixando ainda mais intrigado.

A minha aplicação já existia e eu apenas adicionei o vRaptor a ela, através do Maven. Até então, aparentemente, era apenas seguir o que consta no tutorial do site. E foi isso que fiz.

A ideia é interessante e queria poder conseguir colocar pra funcionar na minha aplicação.

Obrigado mais uma vez.

Abraço.
Olá Washington,

De antemão, obrigado pela ajuda.

Todos os testes que você recomendou eu fazer, eu já tinha feito. Mesmo assim, refiz os testes e o mesmo erro está sendo apresentado.

Os testes foram:
- Deixando o método list sem qualquer tipo de anotação

E fiz o teste acessando a url {URL_APLICACAO}/locals/list/ e nada.
Depois tentei anotar o método apenas com @Path

Nesse caso eu tentei colocar apenas "/locals" e "/locals/list", porém, nada também. O mesmo problema.
Depois disso, adicionei o @Get acima da anotação @Path e repeti o teste acima (colocando "/locals" e "/locals/list" no @Path), mais uma vez sem sucesso.

Não estou conseguindo ver onde estou errado, visto que estou seguindo exatamente os passos que estão sendo listados no site do vRaptor.

Se puder ajudar, serei grato.

Abraço!
 
Índice dos Fóruns » Perfil de bland » Mensagens enviadas por bland
Ir para:   
Powered by JForum 2.1.8 © JForum Team