Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / GWT + Hibernate = Ошибка (No source code is available for type...) / 20 сообщений из 20, страница 1 из 1
24.04.2016, 16:23
    #39223386
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Есть два простейших проекта: один с использованием GWT (простые контролы на веб-странице). Второй простейший пример записи в БД PostgreSQL с использованием Hibernate.

Если порознь они работают замечательно, то попытка объединить их привела к такой ошибке:

[ERROR] Errors in 'file:/D:/JDev/gwtTree/src/main/java/com/mySampleApplication/client/MySampleApplication.java'
[ERROR] Line 25: No source code is available for type org.hibernate.Session; did you forget to inherit a required module?
[ERROR] Unable to find type 'com.mySampleApplication.client.MySampleApplication'


гугление интернета ни к чему внятному на первый взгляд не приводит. На форумах народ пишет, что мол нельзя выполнять их вместе. И вызывать из клиентского приложения тоже нельзя.

по этой ссылке http://jonathan.lalou.free.fr/?p=1077 вроде пишут как обойти эту проблему, но ссылаются на выноски, и полного текста не приводят :(

Народ, подскажите пожалуйста, как связать эти две технологии?
...
Рейтинг: 0 / 0
24.04.2016, 17:07
    #39223396
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
По сути всё просто. Я с помощью GWT TextBox-а ввожу в форму строковые данные. Потом хочу их сохранить в базе PostgreSQL, доступ к которой осуществляется средствами Hibernate.

Не понимаю, почему с этим такие сложности? Да, я в курсе, что GWT в конечном итоге превращается в JavaScript а тот ничего не слыхивал про Hibernate. Но как то нельзя соединить их вместе? В инете куча таких же как я, с теми же проблемами, а решения похоже нет :(
...
Рейтинг: 0 / 0
25.04.2016, 05:45
    #39223493
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Наконец то свершилось!
Кому интересно. Вот здесь http://javastudy.ru/gwt/gwt-2-7-0-jpa-2-1-hibernate-5/ нашел пример близко похожий на мой.

Сделал. Работает. Всё конечно примитивно до ужаса и надо теперь понять как расширить функционал, но начало положено )

Надо сказать технология кучерявая ))))))))
...
Рейтинг: 0 / 0
25.04.2016, 07:09
    #39223503
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
MAULER,
если не учитывать,что GWT какбы уже не жилец....
...
Рейтинг: 0 / 0
25.04.2016, 09:35
    #39223568
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
вадя,

:) А кто "жилец" ?
...
Рейтинг: 0 / 0
25.04.2016, 09:40
    #39223577
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
MAULER,
чистый js :)
ангуляр , jquery
...
Рейтинг: 0 / 0
25.04.2016, 09:51
    #39223586
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
я правильно понял, что вопрос в том, как на сервере воткнуть хибернейт в сервисы?
берете spring mvc, мануалов тьма.
...
Рейтинг: 0 / 0
25.04.2016, 10:10
    #39223605
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,

Опять вопрос у меня!

Сделал всё по образу и подобию одного примера из статьи. В итоге, из базы вытягиваются данные и помещаются на GWT-контролы (TextBox-ы) корректно. Это хорошо. Но проблема в том, что я записать туда (в базу данных) ничего не могу. В силу новизны темы для меня, сильно подозреваю, что я где-то не разобрался, и ответ на поверхности. Помогите люди добрые :) Вот коды модулей:

MainRpcServiceImpl (на стороне сервера)
Код: 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.
public class MainRpcServiceImpl extends RemoteServiceServlet implements MainRpcService {

    @Inject
    EntityManager em;

    private List weatherList = new ArrayList<>();

    public MainRpcServiceImpl(){
        EntityManagerFactory managerFactory = Persistence.createEntityManagerFactory("jpaPersistenceUnit");
        em = managerFactory.createEntityManager();

    }

    @Override
    public List<WeatherEntity> getAllWeatherEntity() {
        Query query = em.createQuery("from WeatherEntity");
        weatherList = query.getResultList();
        return weatherList;
    }

    @Override
    public WeatherEntity saveWeatherEntity (WeatherEntity weatherEntity) {

        weatherEntity.setCity("NewYork");
        weatherEntity.setPrcp(1111);
        weatherEntity.setTempLo(222);
        weatherEntity.setTempHi(333);
        weatherEntity.setDate("11/11/2011");

        em.merge(weatherEntity);
        return null;
    }
}



Интерфейс MainRpcService (на клиенте)
Код: java
1.
2.
3.
4.
5.
@RemoteServiceRelativePath("gwtPersistenceService")
public interface MainRpcService extends RemoteService {
    List<WeatherEntity> getAllWeatherEntity();
    WeatherEntity saveWeatherEntity (WeatherEntity weatherEntity);
}



Интерфейс MainRpcServiceAsync (на клиенте)
Код: java
1.
2.
3.
4.
public interface MainRpcServiceAsync {
    void getAllWeatherEntity(AsyncCallback<List<WeatherEntity>> async);
    void saveWeatherEntity(WeatherEntity weatherEntity, AsyncCallback<WeatherEntity> async);
}



Main Основной модуль откуда стартует GWT-приложение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class Main implements EntryPoint {
    public void onModuleLoad() {

        /*init rpc service */
        final MainRpcServiceAsync rpcService = GWT.create(MainRpcService.class);

                 /* Save -------------------------------------------------------------- */
                 rpcService.saveWeatherEntity(new WeatherEntity(), new AsyncCallback<WeatherEntity>() {
                     @Override
                     public void onFailure(Throwable caught) {
                         Window.alert("Failure: " + caught.getMessage());
                     }

                     @Override
                     public void onSuccess(WeatherEntity result) {
                         Window.alert("Успех!");

//Тут что-т о надо передать??? result.setCity("NewYork"); - не канает.

                     }
                 });

}
...
Рейтинг: 0 / 0
25.04.2016, 10:12
    #39223606
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
gwt rpc - гавно (как и половина всего gwt).
уберите его и все станет просто и понятно.

простой ajax на клиенте (через jquery например)
простой контроллер на сервере

и не надо городить простыню непонятного кода
...
Рейтинг: 0 / 0
25.04.2016, 10:16
    #39223611
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,

Я с Вами полностью согласен :) Сам никогда в эту шнягу не полезу, но...
Мне задание такое дали )) Даже версии фреймворков должны быть определёнными.
...
Рейтинг: 0 / 0
25.04.2016, 10:26
    #39223624
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
я не верю что gwt rpc может быть обязательным условием. это те же самые post запросы, что и обычный ajax.
...
Рейтинг: 0 / 0
25.04.2016, 10:30
    #39223629
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,

Интерфейс пользователя должен быть реализован через GWT + Hibernate.
...
Рейтинг: 0 / 0
25.04.2016, 10:40
    #39223643
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
MAULERPenkov Vladimir,

Интерфейс пользователя должен быть реализован через GWT + Hibernate.

клиента рисовать будет по прежнему gwt. на сервере будет hibernate. просто вызывать методы вы будете не через gwt rpc
...
Рейтинг: 0 / 0
25.04.2016, 11:03
    #39223670
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,
+1
SmartGWT вполне себе работает без хибера.
...
Рейтинг: 0 / 0
25.04.2016, 11:27
    #39223693
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,

Да всё бы класно, только почему то не работает GWT с Hibernate. Точнее работает с далеко не всеми классами.
Вчера всю ночь просидел с ошибкой No source code is available for type org.hibernate.Session; did you forget to inherit a required module? - Это как раз оно.

Гугление ошибки привело к использованию GWT rpc.
...
Рейтинг: 0 / 0
25.04.2016, 11:28
    #39223695
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
MAULER,

вы хибер на клиента чтоли прокидываете? это работать не будет никогда.
...
Рейтинг: 0 / 0
25.04.2016, 11:35
    #39223700
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Penkov Vladimir,

Тогда поясните пож-ста, мне нужно для понимания:

GWT-работает на клиенте?
Hibernate - на сервере?

вот к примеру такой код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
public class appMain {

    public static void main(String[] args) {
        appMethods app = new appMethods();
        app.AddWeather("Троицк", 1234, 2345, 2346, "01.01.2013");
        app.AddWeather("Верхневинск", 1234, 2345, 2146, "02.01.2013");
        app.AddWeather("Калуга", 1234, 2345, 2346, "03.01.2013");
    }
}




Код: 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.
public class appMethods {

    public void AddWeather(String city, Integer prcp, Integer temphi, Integer templo, String date) {

        Session session = HibernateSessionFactory.getSessionFactory().openSession();
        session.beginTransaction();
        WeatherEntity weatherEntity = new WeatherEntity();

        weatherEntity.setCity(city);
        weatherEntity.setPrcp(prcp);
        weatherEntity.setTempHi(temphi);
        weatherEntity.setTempLo(templo);
        weatherEntity.setDate(date);

        session.save(weatherEntity);
        session.getTransaction().commit();
        session.close();

    }

    public void DeleteWeather(String city){
        Session session = HibernateSessionFactory.getSessionFactory().openSession();
        session.beginTransaction();
        WeatherEntity weatherEntity = new WeatherEntity();

        List list = session.createQuery("from WeatherEntity where city='" + city + "'").list();
        Iterator itr = list.iterator();

        while(itr.hasNext()){
            WeatherEntity we = (WeatherEntity)itr.next();
            session.delete(we);
        }
        session.getTransaction().commit();
        session.save(weatherEntity);
    }

}



Это оно на сервере или клиенте работает?
...
Рейтинг: 0 / 0
25.04.2016, 11:37
    #39223701
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
HibernateSessionFactory
Код: 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.
public class HibernateSessionFactory {

    private static SessionFactory sessionFactory = buildSessionFactory();
    protected static SessionFactory buildSessionFactory() {

        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure() // configures settings from hibernate.cfg.xml
                .build();
        try {
            sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();
        }
        catch (Exception e) {
            StandardServiceRegistryBuilder.destroy( registry );
            throw new ExceptionInInitializerError("Initial SessionFactory failed" + e);
        }
        return sessionFactory;
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    public static void shutdown() {
        // Close caches and connection pools
        getSessionFactory().close();
    }

}
...
Рейтинг: 0 / 0
25.04.2016, 11:53
    #39223711
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
MAULER,
сложно вам будет, если вы ни хибер, не GWT не знаете.
Тут с картинками:
http://www.gwtproject.org/articles/using_gwt_with_hibernate.html
...
Рейтинг: 0 / 0
25.04.2016, 11:58
    #39223718
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GWT + Hibernate = Ошибка (No source code is available for type...)
Petro123,

Да я знаю, что не просто. Спасибо за ссылку!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / GWT + Hibernate = Ошибка (No source code is available for type...) / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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