Mensagens enviadas por: bland
Índice dos Fóruns » Perfil de bland » Mensagens enviadas por bland
Autor Mensagem
Lucas,

Funcionou! A sua sugestão de mudança deu certo, porém eu precisei mudar isso nos meus testes:

Ou seja, ao invés de retornar uma lista de ServicosCobertosDto, ele retorna um objeto Servicos com a lista dentro.

Muito obrigado pela sua ajuda.

Abraço!
Lucas,

Segue um exemplo do arquivo de retorno.

Pelo erro apresentado e a maneira como o XML está sendo gerado, penso que o erro está na geração do arquivo. Ou seja, ele deveria estar informando que o servicoCobertoDto faz parte de uma lista.

Será que o erro estaria aqui?
Olá Lucas, tudo bem?

Obrigado de antemão.

Fiz o que você recomendou e passou a dar outro erro:

com.thoughtworks.xstream.converters.ConversionException: idServico : idServico : idServico : idServico
---- Debugging information ----
message : idServico : idServico
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : idServico : idServico
class : br.com.scmba.servico.lancamento.item.conta.genhio.dto.Servicos
required-type : java.util.ArrayList
path : /servicos/servicoCobertoDto/idServico
line number : 3
-------------------------------
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:853)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:845)
at br.com.caelum.restfulie.mediatype.XmlMediaType.unmarshal(XmlMediaType.java:73)
at br.com.caelum.restfulie.http.apache.ApacheResponse.getResource(ApacheResponse.java:60)
at br.com.scmba.servico.lancamento.item.conta.util.ServicoItemCobrancaTest.shouldBeAbleToNavigateThroughLinks(ServicoItemCobrancaTest.java:3
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:2
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:4
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:3
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: idServico : idServico
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.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:70)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:6
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
... 42 more

Criei a classe Servicos e adicionei aos testes:

Tentei seguir a sua lógica (criar um novo objeto com o nome Servicos) para tentar resolver esse erro e não consegui.
Sabe dizer o que estou fazendo de errado?

Obrigado.
Olá pessoal,

Eu estou tentando recuperar uma lista de itens de um determinado objeto, mas sempre dá erro no parse do Xstream. Tentei diversas opções com base nesses arquivos de exemplo e mesmo assim, nada. Me senti confuso seguindo esses arquivos, pra falar a verdade.

Tenho a seguinte configuração:



E o controlador:

E então eu tenho a classe de teste...

Só que no ponto que eu tento pegar o resource (response.getResource()) está dando o seguinte erro:

com.thoughtworks.xstream.converters.ConversionException: servicoCobertoDto : servicoCobertoDto : servicoCobertoDto : servicoCobertoDto
---- Debugging information ----
message : servicoCobertoDto : servicoCobertoDto
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : servicoCobertoDto : servicoCobertoDto
class : br.com.scmba.servico.lancamento.item.conta.genhio.dto.ServicoCobertoDto
required-type : br.com.scmba.servico.lancamento.item.conta.genhio.dto.ServicoCobertoDto
path : /servicos/servicoCobertoDto
line number : 2
-------------------------------
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.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:853)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:845)
at br.com.caelum.restfulie.mediatype.XmlMediaType.unmarshal(XmlMediaType.java:73)
at br.com.caelum.restfulie.http.apache.ApacheResponse.getResource(ApacheResponse.java:60)
at br.com.scmba.servico.lancamento.item.conta.util.ServicoItemCobrancaTest.shouldBeAbleToNavigateThroughLinks(ServicoItemCobrancaTest.java:37)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:2
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:69)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:4
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:292)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:3
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: servicoCobertoDto : servicoCobertoDto
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.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:347)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:20
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
... 36 more

Como poderia resolver esse problema? Alguém tem alguma sugestão?

De antemão, obrigado.
Lucas,

Fiz o que você sugeriu e funcionou. Consigo utilizar o @Transactional. Contudo, ele não garante a transação remotamente.

Eu não entendi muito bem quando sugeriu utilizar Interfaces para os outros componentes. Esses seriam os componentes do Spring ou do Vraptor (Controllers)?

E por mais que eu replique isso (a maneira que você sugeriu para adotar a transação do Spring) para os outros controladores, como repassar a transação para os outros controladores?

Andei pesquisando isso, mas não tive muito sucesso.

Obrigado pela ajuda.
Olá Lucas, tudo bem?

Refiz os testes aqui e segue o erro:

12/12/2011 09:13:32 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lancaExameController': Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class br.com.scmba.servico.lanca.exame.laboratorio.domain.controller.LancaExameController]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)
at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:263)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:85)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:46)
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.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)
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class br.com.scmba.servico.lanca.exame.laboratorio.domain.controller.LancaExameController]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:212)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:112)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:476)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:362)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:322)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:141
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
... 30 more
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:71
at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)
at net.sf.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:285)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:200)
... 37 more


Aqui vai a minha classe (o meu Controller):


Pela mensagem de erro eu acredito que eu não consigo usar o @Transactional fora do escopo do Spring, ou seja, dentro de um bean que seja gerenciado por ele.

Se eu retirar a anotação, esse erro não acontece, porém, eu não consigo manter a execução dos serviços dentro de uma transação única.

Estou fazendo algo de errado?

Obrigado mais uma vez.
Infelizmente não tenho ele agora, o problema está no trabalho.

Na segunda te passarei o erro.
Olá Lucas, obrigado pela sua resposta.

Então, eu tentei usar o do Spring, porém não tive sucesso.

Por exemplo, tenho um método assim (dentro de um Controller):


E dentro desse método eu faço a chamada para os dois outros serviços.

Contudo, quando eu tenho o nesse método, ele não é executado. Dá logo um erro na execução.

Se tem como fazer, como poderia ser? Tem algum exemplo?

Vale lembrar que dentro de cada método dos meus outros dois serviços eu tenho eles assinados como sendo transacionais.

Obrigado, de antemão.
Olá pessoal,

Eu tenho o Vraptor em meus serviços e surgiu essa dúvida do assunto do tópico.

Eu tenho um serviço criado que é responsável por fazer uma "orquestração", só que este mesmo serviço deve, também, garantir a transação, ou seja, se algo der errado no segundo serviço, o primeiro deve dar rollback.

Se alguém puder me ajudar, ficarei grato.

De antemão, obrigado pela ajuda.
Lucas,

Muito obrigado!

Problema resolvido com essa nova versão.

Abraço!
Lucas,

Fiz o teste que pediu e o hashCode de todos os ClassLoader são iguais.

Dando seguimento, fiz o teste junto ao Servlet e está dando o mesmo erro listado.

Servlet:

E faço a chamada
http://localhost:8089/app/test
e o erro é o mesmo e na mesma linha.
Tem alguma outra dica?

Mais uma vez, obrigado.

Abraço!
Lucas,

Coloquei o código que você informou na minha Action e no meu standalone.

Na Action o resultado é:
WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@190d8e1

WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@190d8e1

WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@190d8e1

E no meu standalone é:
sun.misc.Launcher$AppClassLoader@1a7bf11
sun.misc.Launcher$AppClassLoader@1a7bf11
sun.misc.Launcher$AppClassLoader@1a7bf11

Ou seja, para ambos os casos o ClassLoader é o mesmo. Fiquei encucado agora o porque que ele não reconhece o EnhancedList no contexto da web. Alguma outra dica?

Obrigado mais uma vez!
Lucas,

Exatamente isso. O mesmo código, exatamente o mesmo (copy / paste), funciona perfeitamente no standalone.

Vou checar se existe essa mesma biblioteca no Tomcat.

Abraço!
Lucas,

Fiz um teste e depurando vi que é exatamente isso que disse. Essa classe EnhancedList não encontra-se no ClassLoader. Na linha 2072 da classe java.lang.Class (como pode ser visto abaixo), onde o name seria br.com.caelum.restfulie.mediatype.EnhancedList está retornando null.

Estou pensando que isso pode estar ligado ao fato de estar no contexto do Tomcat e este estar se perdendo lá dentro. Tem alguma dica de como eu posso resolver esse problema?

Mais uma vez, obrigado!
Lucas,

De antemão, obrigado pela ajuda!

Esse código do Resfulie está dentro de um projeto que utiliza Struts, ou seja, esse código está sendo executado dentro de uma Action do Struts.

Tanto esse execução de dentro de uma Action como o standalone estão sendo executados de dentro do mesmo projeto (o desenvolvedor que está criando o cliente do meu serviço - a Action - está fazendo essa chamada como teste - o standalne) e o projeto está utilizando o Maven, ou seja, a lib do Restfulie, Javassist, etc. está tudo dentro do próprio projeto em questão. Isso responde as suas perguntas?

Essa questão do ClassLoader eu não cheguei a olhar, apesar de que o argumento é pertinente. Irei olhar agora mesmo. Mas, de antemão, caso esteja em um outro ClassLoader, o que eu poderia estar fazendo para solucionar esse erro?

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