powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE 6 & Vaadin problem!
14 сообщений из 14, страница 1 из 1
Java EE 6 & Vaadin problem!
    #38215753
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток! разрабатываю приложение, и использую данную связку.
Возникла очень странная проблема,
1)при нажатии на кнопку в таблицу должны записываться некоторые данные, но запись в таблицу происходит не в полной мере, т.е. часть данных теряется.
2)у меня есть форма из нескольких шагов, в которых настраиваются клиенты. Клиенты запускаются, записывают свой прогресс выполнения в бд, форма читает из таблицы поля с прогрессом каждого клиента, по достижении 100% форма переходит к выводу результата. При повторном выполнении тех же действий, перед запуском клиентов, я обнуляю поля с прогрессом (клиентов) - НО ЗНАЧЕНИЯ В ТАБЛИЦЕ НЕ МЕНЯЮТСЯ! Хотя при первом проходе все работало.

Сервлет:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
@WebServlet(urlPatterns = "/*")
public class MainServlet extends AbstractApplicationServlet {
//public class MainServlet extends ICEpushServlet {

    
    private static final long serialVersionUID = 1L;
   
    @Inject private Instance<MainWindow> application;

    @Override
    protected Application getNewApplication(HttpServletRequest request) throws ServletException {
        return application.get();
    }

    @Override
    protected Class<? extends Application> getApplicationClass() throws ClassNotFoundException {
        return MainWindow.class;
    }

}



MainWindow:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@SessionScoped
public class MainWindow extends Application {

    @EJB
    private ServerConfigDAOLocal serverConfDAO;


    private Window mainWindow;
    @Override
    public void init() {
....
}



Метод обнуления
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@Stateless(name = "EjbRemoteClientDAO", mappedName = "ServerTFA-Model-EjbRemoteClientDAO")
public class EjbRemoteClientDAOBean implements EjbRemoteClientDAOLocal {
....
    public void setToZeroProgress(){
        List<EjbRemoteClients> list = findByJob("false");
        int size = list.size();
        for(int i = 0; i < size; i++){
            list.get(i).setProgeassCopyfiles("0");
            list.get(i).setProgressTestfiles("0");
            mergeEjbRemoteClients(list.get(i));
        }
    }

}



Я думаю проблема в Vaadin - е, в @SessionScoped, т.к. после редеплоя все работает.
Если нету мыслей по этому поводу, может вы посоветует другой фраймворк, у которого нет подобных проблем, в нем можно динамически обновлять компоненты, и создавать изменяющееся количество компонентов (в моем случае от количества клиентов)

Заранее спасибо!
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38215758
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
главное окно состоит из нескольких Табов, все содержимое табов, сделано в отдельных классах, поэтому бины берутся через InitialContext поиском по JNDI, при создании элемент.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38215759
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл....
сервер WebLogic 12c, база данных Oracle 11g
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38215836
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если подебажить?
версия ваадин какая?
используете для коспонентов параметр setImmidiate ?
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38215998
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic, версия ваадин - 6.8.9, setImmidiate выставить всем компонентам? я поставил только кнопкам после которых выполняются действия по работе с БД, не помогло!
Дебажить, не вижу смысла, ошибки не выскакивают...просто в БД не пишется результат=(
(я смотрел БД через SQL Developer, собственно такой дебаг =) )
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216272
trubalaможет вы посоветует другой фраймворк, у которого нет подобных проблем, в нем можно динамически обновлять компоненты, и создавать изменяющееся количество компонентов (в моем случае от количества клиентов)

А чего vaadin такой древний? уже 4 месяца как вышла 7-я версия, а 6-я через месяц вообще с поддержки снимается.
А в 7-й версии очень много полезного сделали. Но это лирика.

По сути вопроса проблемы не у ваадина. Просто надо уметь им пользоваться.
У меня в проекте, правда на спринге а не JEE, все отлично работает.
И опять, же при чем тут ваадин, если у вас не обновляются данные в БД?

trubalaв нем можно динамически обновлять компоненты, и создавать изменяющееся количество компонентов (в моем случае от количества клиентов)

Это вот щас вы о чем? какие именно компоненты не получается динамически создать-то?
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216294
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПо сути вопроса проблемы не у ваадина. Просто надо уметь им пользоваться.
У меня в проекте, правда на спринге а не JEE, все отлично работает.
И опять, же при чем тут ваадин, если у вас не обновляются данные в БД?

При первом выполнении цикла действий с БД, все работает и данные обновляется.
Что бы выполнить повторно тот же цикл действий, я жму кнопку по которой выполняется &restartApplication (хотя и без него то же не работает), после перзапуска приложения вы полняю второй цикл действий и данные уже не вставляются в бд.

Возникла идея, может проблема в транзакциях, такое ощущение будто они не коммиться. Но транзакции управляются контейнером, такого по идеи не должно быть.

Либо модет проблема с драйвером подключения к БД, я пробовал однофазный и двух фазный коммит, но изменений не заметил.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216307
Тут скорее всего проблема именно в транзакциях. Это вообще распространенная проблема.
Очень много вопросов в инете, почему транзакции не работают.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216369
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
интересная штука, пытаюсь целенаправленно изменить поля прогресса

Код: java
1.
2.
3.
4.
                 @NamedQuery(name = "setToZeroProgressCopy",
                             query = "update EjbRemoteClients o set o.progeassCopyfiles='0' where o.idClient=:id"),
                 @NamedQuery(name = "setToZeroProgressTest",
                             query = "update EjbRemoteClients o set o.progressTestfiles='0' w



Код: java
1.
2.
3.
4.
5.
6.
7.
public void setToZeroProgressCopy(BigDecimal id) {
        em.createNamedQuery("setToZeroProgressCopy").setParameter("id", id).executeUpdate();
    }

    public void setToZeroProgressTest(BigDecimal id) {
        em.createNamedQuery("setToZeroProgressTest").setParameter("id", id).executeUpdate();
    }



При выполнении этих методов вываливается такой Exception

Код: java
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.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
com.vaadin.event.ListenerMethod$MethodException: Invocation of method buttonClick in view.testTab.TestTabPanel$2 failed.
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:530)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
	at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219)
	at com.vaadin.ui.Button.fireClick(Button.java:567)
	at com.vaadin.ui.Button.changeVariables(Button.java:223)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761)
	at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:325)
	at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338)
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3288)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1513)
	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: javax.ejb.EJBException: EJB Exception: : java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: model.ClientSourceDirs@f850d9.
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.discoverUnregisteredNewObjects(RepeatableWriteUnitOfWork.java:304)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:702)
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:433)
	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:780)
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.performPreQueryFlush(EJBQueryImpl.java:1298)
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeUpdate(EJBQueryImpl.java:538)
	at model.dao.EjbRemoteClientDAOBean.setToZeroProgressCopy(EjbRemoteClientDAOBean.java:238)
	at model.dao.EjbRemoteClientDAOBean.createJobClients(EjbRemoteClientDAOBean.java:204)
	at model.dao.EjbRemoteClientDAO_kxmhi0_EjbRemoteClientDAOLocalImpl.__WL_invoke(Unknown Source)
	at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:31)
	at model.dao.EjbRemoteClientDAO_kxmhi0_EjbRemoteClientDAOLocalImpl.createJobClients(Unknown Source)
	at view.testTab.StepConfig.build(StepConfig.java:108)
	at view.testTab.StepConfig.<init>(StepConfig.java:89)
	at view.testTab.TestTabPanel$2.buttonClick(TestTabPanel.java:166)
	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.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
	at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219)
	at com.vaadin.ui.Button.fireClick(Button.java:567)
	at com.vaadin.ui.Button.changeVariables(Button.java:223)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761)
	at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:325)
	at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:501)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338)
	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3288)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1513)
	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

	at weblogic.ejb.container.internal.EJBRuntimeUtils.throwEJBException(EJBRuntimeUtils.java:154)
	at weblogic.ejb.container.internal.BaseLocalObject.handleSystemException(BaseLocalObject.java:509)
	at weblogic.ejb.container.internal.BaseLocalObject.handleSystemException(BaseLocalObject.java:447)
	at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocalObject.java:248)
	at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetry(BaseLocalObject.java:202)
	at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:44)
	at model.dao.EjbRemoteClientDAO_kxmhi0_EjbRemoteClientDAOLocalImpl.createJobClients(Unknown Source)
	at view.testTab.StepConfig.build(StepConfig.java:108)
	at view.testTab.StepConfig.<init>(StepConfig.java:89)
	at view.testTab.TestTabPanel$2.buttonClick(TestTabPanel.java:166)
	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.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	... 33 more
Caused by: java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: model.ClientSourceDirs@f850d9.
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.discoverUnregisteredNewObjects(RepeatableWriteUnitOfWork.java:304)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:702)
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.writeChanges(RepeatableWriteUnitOfWork.java:433)
	at org.eclipse.persistence.internal.jpa.EntityManagerImpl.flush(EntityManagerImpl.java:780)
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.performPreQueryFlush(EJBQueryImpl.java:1298)
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeUpdate(EJBQueryImpl.java:538)
	at model.dao.EjbRemoteClientDAOBean.setToZeroProgressCopy(EjbRemoteClientDAOBean.java:238)
	at model.dao.EjbRemoteClientDAOBean.createJobClients(EjbRemoteClientDAOBean.java:204)
	at model.dao.EjbRemoteClientDAO_kxmhi0_EjbRemoteClientDAOLocalImpl.__WL_invoke(Unknown Source)
	at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:31)
	... 42 more



Не хочет обновлять поля....
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216545
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что такое "поля прогресса"? какой это компонент и где в коде видно, что вы его "обнуляете".
п.с. Для "обнуления" нужно выполнить метод setValue(...) со значением вместо точек null либо "", в зависимости от ситуации.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38216973
Nixicчто такое "поля прогресса"? какой это компонент и где в коде видно, что вы его "обнуляете".
п.с. Для "обнуления" нужно выполнить метод setValue(...) со значением вместо точек null либо "", в зависимости от ситуации.

У автора проблема с БД, а не с vaadin.
Поля прогресса у него это ячейки таблицы в базе, их он и не умеет апдейтить.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38217897
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, именно с транзакциями. В итоге с сделал методы которые изменяют отдельные поля клиентов в таблице, до этого. я получал сущность клиента изменял ее параметры и делал merge записи.
Так, что не правильно делать?
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38217928
trubalaДо этого. я получал сущность клиента изменял ее параметры и делал merge записи.
Так, что не правильно делать?

Все правильно, так именно и делается.
...
Рейтинг: 0 / 0
Java EE 6 & Vaadin problem!
    #38217930
trubala
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ищущий Знания, так не работала, пришлось делать костыли.
Может у меня не правильно настроена глобальная транзакция, не коммитила, по завершению работы метода в бине, в базу данные.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Java EE 6 & Vaadin problem!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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