Problema com guice + requestfactory in maven-gae-gwt project

1 resposta
Kradcifer

Estou tentando configurar meu ambiente de desenvolvimento e estou com um grande problema. Estou configurando uma aplicação gwt-gae-maven que vou utilizar guice para injeção de dependência e requestfactory para persistência dos dados. Eu tentei usar uma api que eu encontrei aqui https://github.com/etiennep/injected-requestfactory… parece mágica, mas nao funcionou pra mim. Tentei seguir os passos indicados aqui http://www.wanderingcanadian.ca/guiced-up-gwt-requestfactory mas tanbém nao funcionou… O problema é quando eu tento rodar a plicação… eu tenho esse problema, e nada mais funciona:

  1. Error in custom provider, java.lang.RuntimeException:
    java.lang.reflect.InvocationTargetException
    at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidatorFactory(InjectedRequestFactoryModule.java:42)
    while locating javax.validation.ValidatorFactory
    at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidator(InjectedRequestFactoryModule.java:59)
    while locating javax.validation.Validator
    for parameter 1 at com.kradcifer.glazier.server.requestfactory.InjectedServiceLayerDecorator.(InjectedServiceLayerDecorator.java:36)
    while locating com.kradcifer.glazier.server.requestfactory.InjectedServiceLayerDecorator
    while locating com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
    for parameter 1 at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryServlet.(InjectedRequestFactoryServlet.java:25)
    while locating com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryServlet
1 error

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:741)

at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:763)

at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:74)

at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:86)

at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:106)

at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:168)

at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)

at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)

at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)

at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)

at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)

at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.Server.doStart(Server.java:222)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)

at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)

at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)

at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)

at com.google.gwt.dev.DevMode.main(DevMode.java:311)

Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:106)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:732)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:728)

at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:95)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)

at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)

at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:79)

at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:180)

at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:51)

at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)

at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)

at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:79)

at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:180)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:732)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:778)

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:728)

 25 more

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:101)

 59 more

Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/validation/Validation

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:791)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload$WebAppClassLoaderExtension.findClass(JettyLauncher.java:372)

at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)

at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)

at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidatorFactory(InjectedRequestFactoryModule.java:42)

 64 more

[WARN] Failed startup of context com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload@7c125c9e{/,C:\Rodrigo\Desenvolvimento\Glazier\glazier\src\main\webapp}

com.google.inject.ProvisionException: Guice provision errors:
  1. Error in custom provider, java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidatorFactory(InjectedRequestFactoryModule.java:42)
    while locating javax.validation.ValidatorFactory
    at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidator(InjectedRequestFactoryModule.java:59)
    while locating javax.validation.Validator
    for parameter 1 at com.kradcifer.glazier.server.requestfactory.InjectedServiceLayerDecorator.(InjectedServiceLayerDecorator.java:36)
    while locating com.kradcifer.glazier.server.requestfactory.InjectedServiceLayerDecorator
    while locating com.google.web.bindery.requestfactory.server.ServiceLayerDecorator
    for parameter 1 at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryServlet.(InjectedRequestFactoryServlet.java:25)
    while locating com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryServlet
1 error

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:741)

at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:763)

at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:74)

at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:86)

at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:106)

at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:168)

at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:593)

at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)

at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1220)

at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:513)

at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)

at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:468)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)

at org.mortbay.jetty.Server.doStart(Server.java:222)

at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)

at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:672)

at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)

at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)

at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)

at com.google.gwt.dev.DevMode.main(DevMode.java:311)

Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:106)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:732)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:728)

at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:95)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)

at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)

at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:79)

at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:180)

at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:51)

at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)

at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)

at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:79)

at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:180)

at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:43)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:785)

at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)

at com.google.inject.Scopes$1$1.get(Scopes.java:54)

at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:44)

at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:732)

at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:778)

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:728)

 25 more

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:101)

 59 more

Caused by: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/validation/Validation

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:791)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload$WebAppClassLoaderExtension.findClass(JettyLauncher.java:372)

at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)

at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)

at com.kradcifer.glazier.server.requestfactory.InjectedRequestFactoryModule.getValidatorFactory(InjectedRequestFactoryModule.java:42)

 64 more

Também tentei rodar sem o guice… especificando o servlet do requestfactory direto no web.xml, mas tive o mesmo erro (porém desta vez nao foi quando rodava a aplicação, mas quando a iniciava).
Tentei várias coisas e nada funcionou… sempre o mesmo erro. Creio que seja algum detalhe que passou despercebido… E não posso continuar sem arrumar isso. Alguem tem alguma idéia?

Obrigado.

Ps.: Sou novo no fórum… não sei se fiz o tópico de maneira correta. Caso não, favor me informar.

1 Resposta

Kradcifer

Não consegui resolver este problema, então deletei o projeto e criei novamente. Não sei ao certo a razão do erro.

Criado 29 de janeiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 1
Participantes 1