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)…
[code] RestClient restfulie = Restfulie.custom();
restfulie.getMediaTypes().register(
new XmlMediaType().withTypes(
LoteDispensacaoDto.class,
LoteDispensacaoSolicitacaoDto.class,
ItemAprazamentoHorarioDto.class,
ItemAprazamentoDispensacaoDto.class
)
);
String servico = getProperties().getProperty("ws.baixaLote");
Response response = restfulie.at(servico).accept( XML ).as( XML ).post(loteDispensacaoDto);
return response.getCode();[/code]
… 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:
[quote]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:518)
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:188)
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:188)
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:188)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
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:188)
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:108)
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:528)
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:18)
… 44 more[/quote]
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!