Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / GWTP + Guice EntityManager равен null во время выполнения / 5 сообщений из 5, страница 1 из 1
06.10.2015, 20:10
    #39069859
alleo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWTP + Guice EntityManager равен null во время выполнения
Здравствуйте.

Пытаюсь связать GWTP + Guice в качестве CDI. Во время выполнения получаю такую ошибку:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
1) Error in custom provider, java.lang.NullPointerException
  while locating com.google.inject.persist.jpa.JpaPersistService
  while locating javax.persistence.EntityManager
  at online.shashki.rus.server.dao.impl.PlayerDaoImpl.<init>(PlayerDaoImpl.java:25)
  while locating online.shashki.rus.server.dao.impl.PlayerDaoImpl
  while locating online.shashki.rus.server.dao.PlayerDao
  at online.shashki.rus.server.service.PlayerServiceImpl.<init>(PlayerServiceImpl.java:27)
  at online.shashki.rus.server.service.PlayerServiceImpl.class(PlayerServiceImpl.java:27)
  while locating online.shashki.rus.server.service.PlayerServiceImpl



GuiceListener.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@WebListener
public class GuiceListener extends GuiceServletContextListener {

  private PersistService persistService;

  @Override
  protected Injector getInjector() {
    return Guice.createInjector(new ServerServletModule(), new ServiceModule());
  }
}



ServerServletModule.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public class ServerServletModule extends ServletModule {

  private static final String SHASHKI_PU = "shashki64PU";

  @Override
  protected void configureServlets() {
    install(new JpaPersistModule(SHASHKI_PU));
    filter("/*").through(PersistFilter.class);

    bind(PlayerDao.class).to(PlayerDaoImpl.class);
    bind(GameDao.class).to(GameDaoImpl.class);
    bind(GameMessageDao.class).to(GameMessageDaoImpl.class);

    serve("/Application/ProfileService").with(PlayerServiceImpl.class);
    serve("/Application/GameService").with(GameServiceImpl.class);
    serve("/Application/GameMessageService").with(GameMessageServiceImpl.class);
  }
}



ServiceModule.java
Код: java
1.
2.
3.
4.
5.
6.
7.
public class ServiceModule extends AbstractModule {
  protected void configure() {
    bind(PlayerService.class).to(PlayerServiceImpl.class).in(Singleton.class);
    bind(GameRpcService.class).to(GameServiceImpl.class).in(Singleton.class);
    bind(GameMessageRpcService.class).to(GameMessageServiceImpl.class).in(Singleton.class);
  }
}



PlayerDaoImpl.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class PlayerDaoImpl extends DaoImpl<Player> implements PlayerDao {

  private final EntityManager entityManager;

  @Inject
  public PlayerDaoImpl(TypeLiteral<Player> type, Provider<EntityManager> entityManagerProvider) {
    super(type);
    entityManager = entityManagerProvider.get();
  }

  @Override
  protected EntityManager getEntityManager() {
    return entityManager;
  }
}



PlayerServiceImpl.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Singleton
public class PlayerServiceImpl extends RemoteServiceServlet implements PlayerService {

  private final PlayerDao playerDao;

  @Inject
  public PlayerServiceImpl(Provider<PlayerDao> playerDao) {
    this.playerDao = playerDao.get();
  }
}



Есть идеи, что не так?
...
Рейтинг: 0 / 0
07.10.2015, 08:45
    #39070094
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWTP + Guice EntityManager равен null во время выполнения
alleo,

Далее после этого должен быть stacktrace, его бы привел. Провайдер EntityManager нормально инжектится, не null, NPE далее в JpaPersistServicе, возможно не может найти PU shashki64PU.
...
Рейтинг: 0 / 0
07.10.2015, 22:18
    #39071320
alleo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWTP + Guice EntityManager равен null во время выполнения
0FD,

Код: trace
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
22:12:47,356 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /rus/index.html: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error in custom provider, java.lang.NullPointerException
  while locating com.google.inject.persist.jpa.JpaPersistService
  while locating javax.persistence.EntityManager
  at online.shashki.rus.server.dao.impl.PlayerDaoImpl.(PlayerDaoImpl.java:25)
  while locating online.shashki.rus.server.dao.impl.PlayerDaoImpl
  while locating online.shashki.rus.server.dao.PlayerDao
  at online.shashki.rus.server.service.PlayerServiceImpl.(PlayerServiceImpl.java:27)
  at online.shashki.rus.server.service.PlayerServiceImpl.class(PlayerServiceImpl.java:27)
  while locating online.shashki.rus.server.service.PlayerServiceImpl

1 error
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1047) [guice-4.0.jar:]
	at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:112) [guice-servlet-4.0.jar:]
	at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82) [guice-servlet-4.0.jar:]
	at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:103) [guice-servlet-4.0.jar:]
	at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:220) [guice-servlet-4.0.jar:]
	at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:85)
	at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:97) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:79) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.core.ManagedFilter.getFilter(ManagedFilter.java:65) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) [undertow-servlet-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759) [undertow-core-1.1.0.Final.jar:1.1.0.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
Caused by: java.lang.NullPointerException
	at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:76) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.isActive(JtaStatusHelper.java:118) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.engine.transaction.internal.jta.CMTTransaction.join(CMTTransaction.java:149) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.jpa.spi.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1602) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.jpa.spi.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:210) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.jpa.internal.EntityManagerImpl.(EntityManagerImpl.java:91) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.jpa.internal.EntityManagerFactoryImpl.internalCreateEntityManager(EntityManagerFactoryImpl.java:345) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
	at org.hibernate.jpa.internal.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:313) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
	at com.google.inject.persist.jpa.JpaPersistService.begin(JpaPersistService.java:77) [guice-persist-4.0.jar:]
	at com.google.inject.persist.jpa.JpaPersistService.get(JpaPersistService.java:57) [guice-persist-4.0.jar:]
	at com.google.inject.persist.jpa.JpaPersistService.get(JpaPersistService.java:41) [guice-persist-4.0.jar:]
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) [guice-4.0.jar:]
	at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72) [guice-4.0.jar:]
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61) [guice-4.0.jar:]
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) [guice-4.0.jar:]
	at online.shashki.rus.server.dao.impl.PlayerDaoImpl.(PlayerDaoImpl.java:26) [classes:]
	at online.shashki.rus.server.dao.impl.PlayerDaoImpl$$FastClassByGuice$$5cf34862.newInstance() [guice-4.0.jar:]
	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) [guice-4.0.jar:]
	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) [guice-4.0.jar:]
	at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) [guice-4.0.jar:]
	at online.shashki.rus.server.service.PlayerServiceImpl.(PlayerServiceImpl.java:28) [classes:]
	at online.shashki.rus.server.service.PlayerServiceImpl$$FastClassByGuice$$c5582598.newInstance() [guice-4.0.jar:]
	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) [guice-4.0.jar:]
	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) [guice-4.0.jar:]
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267) [guice-4.0.jar:]
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103) [guice-4.0.jar:]
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) [guice-4.0.jar:]
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145) [guice-4.0.jar:]
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) [guice-4.0.jar:]
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) [guice-4.0.jar:]
	... 38 more
...
Рейтинг: 0 / 0
08.10.2015, 08:55
    #39071474
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWTP + Guice EntityManager равен null во время выполнения
alleo,

transaction-type="RESOURCE_LOCAL" и non-jta-data-source если нужно в persistence.xml
...
Рейтинг: 0 / 0
08.10.2015, 11:53
    #39071741
alleo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWTP + Guice EntityManager равен null во время выполнения
0FD,

Спасибо за ответы, разобрался. Проблема была в конфликте Guice версий. На сервере 4.0, а на клиенте GIN тянул 3.0. Разнес код на три Maven модуля client, server и shared со своими библиотеками.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / GWTP + Guice EntityManager равен null во время выполнения / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]