Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
28 / 28 / 1
Регистрация: 21.06.2013
Сообщений: 192
1

Javafx.fxml.LoadException при использовании Hibernate

28.09.2017, 10:10. Показов 1050. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется небольшая программка:
Controller:
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
package sample;
 
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import org.hibernate.Session;
import sample.entity.NoteEntity;
 
import javax.annotation.PostConstruct;
import java.util.List;
 
public class Controller {
    private ObservableList<NoteEntity> usersData = FXCollections.observableArrayList();
 
    @FXML
    private TableView<NoteEntity> notes;
    @FXML
    private TableColumn<NoteEntity,Integer> idColumn;
    @FXML
    private TableColumn<NoteEntity, String> dateColumn;
    @FXML
    private TableColumn<NoteEntity, String> noteColumn;
 
    @FXML
    private TextField fieldId;
 
 
    @SuppressWarnings("unchecked")
    @PostConstruct
    @FXML
    private void initialize() {
 
        initData();
 
        idColumn.setCellValueFactory(new PropertyValueFactory<NoteEntity, Integer>("id"));
        dateColumn.setCellValueFactory(new PropertyValueFactory<NoteEntity,String>("date"));
        noteColumn.setCellValueFactory(new PropertyValueFactory<NoteEntity,String>("note"));
 
 
 
        notes.getColumns().setAll(idColumn,dateColumn,noteColumn);
        notes.setItems(usersData);
    }
 
    //@SuppressWarnings("unchecked")
    private void initData() {
        Session session = MainHibernate.getSession();
        session.beginTransaction();
        List<Long> list = session.createQuery("select id from NoteEntity").list();
        for (long x: list){
            NoteEntity notes = (NoteEntity) session.get(NoteEntity.class, x);
            NoteEntity note_one = new NoteEntity(notes.getId(), notes.getDate(), notes.getNote());
            usersData.add(note_one);
        }
        session.close();
    }
    @FXML
    private void buttonAdd(){
 
    }
}
entity.NoteEntity
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
package sample.entity;
 
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "notes", schema = "notes_db")
public class NoteEntity implements Serializable {
    private long id;
    private String date;
    private String note;
 
    public NoteEntity(long id, String date, String note){
        this.id = id;
        this.date = date;
        this.note = note;
    }
    public NoteEntity(){}
    @Id
    //@GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    public long getId() {
            return id;
        }
    public void setId(long id) {
            this.id = id;
        }
 
    @Basic
    @Column(name = "date", nullable = true, length = 255)
    public String getDate() {
            return date;
        }
    public void setDate(String date) {
            this.date = date;
        }
 
    @Basic
    @Column(name = "note", nullable = true, length = 255)
    public String getNote() {
            return note;
        }
    public void setNote(String note) {
        this.note = note;
    }
 
}
Main
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
package sample;
 
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
 
import java.io.IOException;
 
public class Main extends Application {
 
    private Stage primaryStage;
    private static BorderPane workedLayout;
 
    @Override
    public void start(Stage primaryStage) throws Exception{
        this.primaryStage=primaryStage;
        this.primaryStage.setTitle("ComaFX");
        primaryStage.setTitle("comaFX");
        showMainItems();
    }
    private void showMainItems() throws IOException {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(Main.class.getResource("/FXML/main.fxml"));
        workedLayout = loader.load();
        Scene scene = new Scene(workedLayout);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
 
 
    public static void main(String[] args) {
        launch(args);
    }
}
MainHibernate
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
package sample;
 
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
 
public class MainHibernate {
    private static final SessionFactory ourSessionFactory;
 
    static {
        try {
            Configuration configuration = new Configuration();
            configuration.configure();
            ourSessionFactory = configuration.buildSessionFactory();
        } catch (Throwable ex) {
            throw new ExceptionInInitializerError(ex);
        }
    }
 
    public static Session getSession() throws HibernateException {
        return ourSessionFactory.openSession();
    }
 
}
main.fxml
XML
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
<?xml version="1.0" encoding="UTF-8"?>
 
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
 
 
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <center>
      <TableView fx:id="notes" prefHeight="338.0" prefWidth="600.0" BorderPane.alignment="CENTER">
        <columns>
          <TableColumn fx:id="idColumn" prefWidth="30.0" text="id" />
          <TableColumn fx:id="dateColumn" minWidth="0.0" prefWidth="107.0" text="date" />
            <TableColumn fx:id="noteColumn" minWidth="0.0" prefWidth="462.0" text="note" />
        </columns>
      </TableView>
   </center>
   <bottom>
      <BorderPane prefHeight="54.0" prefWidth="600.0" BorderPane.alignment="CENTER">
         <left>
            <TextField fx:id="fieldId" prefHeight="25.0" prefWidth="461.0" BorderPane.alignment="CENTER" />
         </left>
         <right>
            <Button onAction="#buttonAdd" mnemonicParsing="false" prefHeight="25.0" prefWidth="130.0" text="Add" BorderPane.alignment="CENTER" />
         </right>
      </BorderPane>
   </bottom>
</BorderPane>
hibernate.cfg.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
                <property name="connection.url">jdbc:mysql://localhost:3306/notes_db?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC</property>
                <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 
 
                <!-- NOTE that after automapping with IDEA property username and password will delete -->
                <!--and will be:  Initial SessionFactory failedorg.hibernate.service.spi.ServiceException: Unable to create requested service-->
                <property name="connection.username">root</property>
                <property name="connection.password">*******</property>
                <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
                <property name="show_sql">true</property>
                <!-- NOTE that after automapping with IDEA property username and password will delete -->
                <mapping class="sample.entity.NoteEntity"/>
 
                <!-- DB schema will be updated if needed -->
                <!--<property name="hbm2ddl.auto">update</property> -->
</session-factory>
</hibernate-configuration>
При компиляции выдает ошибку:
Кликните здесь для просмотра всего текста

INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917 )
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImp l.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: javafx.fxml.LoadException:
/D:/Program%20Files/JavaProjects/notes/target/classes/FXML/main.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at sample.Main.showMainItems(Main.java:26)
at sample.Main.start(Main.java:21)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163(LauncherIm pl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java: 326)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:29 4)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$149(WinApplication.java:191)
... 1 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)
... 13 more
Caused by: java.lang.ExceptionInInitializerError
at sample.MainHibernate.<clinit>(MainHibernate.java:18)
at sample.Controller.initData(Controller.java:51)
at sample.Controller.initialize(Controller.java:37)
... 23 more
Caused by: java.lang.AbstractMethodError
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:282)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilde rImpl.java:452)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:710)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726)
at sample.MainHibernate.<clinit>(MainHibernate.java:16)
... 25 more

Помогите понять в чём дело.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2017, 10:10
Ответы с готовыми решениями:

JavaFx+Hibernate+Spring "don't inject bean Caused by: java.lang.NullPointerException"
Здравствуйте. Очень нужна Ваша помощь. Сделал конфигурацию. Если запускать с главного класса(начала...

Почему возникает ошибка javafx.fxml.LoadException
package LinLab_System; import javafx.application.Application; import...

Javafx разделения fxml
Всем привет. В приложении окно поделено на три части/таба: главная, бд, настройки. Я хочу чтобы...

JavaFX Не удаётся загрузить FXML
При нажатии на кнопку должна произойти загрузка FXML и открыться новая форма, но у меня выдаёт...

4
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
28.09.2017, 20:11 2
Казалось бы, при чём тут Hibernate?
0
28 / 28 / 1
Регистрация: 21.06.2013
Сообщений: 192
29.09.2017, 10:15  [ТС] 3
Цитата Сообщение от korvin_ Посмотреть сообщение
Казалось бы, при чём тут Hibernate?
А по делу есть что?
0
0 / 0 / 0
Регистрация: 19.05.2015
Сообщений: 1
09.05.2018, 22:20 4
Здравствуйте. Столкнулся с такой же проблемой, очень интересно, как Вы решили этот вопрос. Спасибо.
0
28 / 28 / 1
Регистрация: 21.06.2013
Сообщений: 192
10.05.2018, 00:35  [ТС] 5
Цитата Сообщение от sniffsnirr Посмотреть сообщение
Здравствуйте. Столкнулся с такой же проблемой, очень интересно, как Вы решили этот вопрос. Спасибо.
Если честно, не помню как именно проблему решил, я после этого много чего переписывал. Если интересно можете посмотреть на гитхабе, там уже изменённый вариант лежит:
https://github.com/Algamon/comaFX
0
10.05.2018, 00:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2018, 00:35
Помогаю со студенческими работами здесь

Threads и GUI, JavaFX 8 (FXML)
Здравствуйте, у меня вопросик: 1) Создаю 10 threads через: for(int i=0; i &lt; threadsrun; i++){ ...

JavaFX. FXML Load Exception
Доброго времени суток. Сразу к делу: вот ошибка javafx.fxml.LoadException: ...

import javafx.fxml.FXMLLoader не испортирует
Стоит Eclipse. В нем создан Maven проект с POM: ... &lt;plugins&gt; &lt;plugin&gt; ...

Перенос на новую строку JavaFX+FXML
public class Controller { @FXML private TextArea q; @FXML private Label w; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru