В чем может быть ошибка с Bean или с чем то другим?
Application.java
package com.spring.app;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application extends AbstractJavaFxApplicationSupport
{
public static void main(String[] args) {
launchApp(args);
}
}
AbstractJavaFxApplicationSupport.java
package com.spring.app;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.context.ConfigurableApplicationContext;
import java.io.IOException;
public abstract class AbstractJavaFxApplicationSupport extends Application
{
private static String[] savedArgs;
private ConfigurableApplicationContext context;
private Stage splashScreen;
@Override
public void start(Stage stage) throws IOException
{
ControllersConfiguration.loadMain().show();
}
private void showSplash() {
try {
splashScreen = new Stage(StageStyle.TRANSPARENT);
splashScreen.setTitle("Splash");
Parent root = FXMLLoader.load(getClass().getResource("/fxml/download.fxml"));
Scene scene = new Scene(root, Color.TRANSPARENT);
splashScreen.setScene(scene);
splashScreen.show();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void init() throws Exception
{
context = SpringApplication.run(getClass(), savedArgs);
context.getAutowireCapableBeanFactory().autowireBean(this);
// Platform.runLater(this::showSplash);
// Thread.sleep(5000);
// Platform.runLater(this::closeSplash);
}
private void closeSplash() {
splashScreen.close();
}
@Override
public void stop() throws Exception
{
super.stop();
context.close();
}
static void launchApp(String[] args)
{
AbstractJavaFxApplicationSupport.savedArgs = args;
Application.launch(com.spring.app.Application.class, args);
}
}
ControllersConfiguration.java
package com.spring.app;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
@Configuration
public class ControllersConfiguration
{
private static final String FXML_DIR = "/fxml/";
private static final String MAIN_STAGE = "main";
private static Parent load(String fxmlName) throws IOException
{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(ControllersConfiguration.class.getResource(FXML_DIR + fxmlName + ".fxml"));
loader.setClassLoader(ControllersConfiguration.class.getClassLoader());
return loader.load(ControllersConfiguration.class.getResourceAsStream(FXML_DIR + fxmlName + ".fxml"));
}
public static Scene loadScene(String fxmlName) throws IOException
{
return new Scene(load(fxmlName));
}
public static Stage loadMain() throws IOException {
Stage stage = new Stage();
stage.setTitle("dwd");
Scene scene = new Scene(load(MAIN_STAGE));
//stage.setOnHidden(event -> Platform.exit());
scene.getStylesheets().add(ControllersConfiguration.class.getResource("/style.css").toExternalForm());
stage.setScene(scene);
stage.setResizable(true);
stage.centerOnScreen();
stage.show();
return stage;
}
}
MainController.java
package com.spring.app.ui;
import com.spring.app.ui.modelStage.LoginModelStage;
import com.spring.app.ui.modelStage.RegistrationModelStage;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import javax.annotation.PostConstruct;
import java.io.IOException;
@SuppressWarnings("SpringJavaAutowiringInspection")//Отключение предупреждений
public class MainController
{
@FXML private TextField txtLogin;
@FXML private TextField txtPassword;
@FXML private Button btLogin;
@FXML private Button btRegistration;
@FXML
public void initialize() { }
@PostConstruct
public void init()
{
// all.setText(String.valueOf(personRepository.findOne((long) 48)));
// Person person = Person.create("12","22","33");
// personRepository.save(person);
// Name.setText(personRepository.findOne((long) 1).getFirstName());
}
@FXML
public void actionLogin() throws IOException {
LoginModelStage loginModelStage = new LoginModelStage();
loginModelStage.show();
Stage stage = (Stage) btLogin.getScene().getWindow();
stage.hide();
}
@FXML
public void actionRegistration() throws IOException
{
RegistrationModelStage registrationModelStage = new RegistrationModelStage();
registrationModelStage.show();
Stage stage = (Stage) btRegistration.getScene().getWindow();
stage.hide();
}
}
main.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity"
minHeight="-Infinity" minWidth="-Infinity"
prefHeight="266.0" prefWidth="405.0" stylesheets="@/style.css"
xmlns="http://javafx.com/javafx/8.0.201"
xmlns:fx="http://javafx.com/fxml/1"
fx:controller="com.spring.app.ui.MainController">
<ImageView fitHeight="63.0" fitWidth="238.0" layoutX="186.0" pickOnBounds="true" preserveRatio="true">
<Image url="@/image/welcome.png" /> </ImageView>
<ImageView fitHeight="150.0" fitWidth="200.0" layoutX="14.0" layoutY="57.0" pickOnBounds="true" preserveRatio="true">
<Image url="@/image/iconUser.png" /> </ImageView>
<TextField fx:id="txtLogin" alignment="CENTER" layoutX="176.0" layoutY="76.0"
prefHeight="27.0" prefWidth="193.0" promptText="Введите логин пользователя" />
<TextField fx:id="txtPassword" alignment="CENTER" layoutX="176.0" layoutY="137.0"
prefHeight="27.0" prefWidth="193.0" promptText="Введите пароль пользователя" />
<Button fx:id="btLogin" layoutX="282.0" layoutY="194.0" minWidth="-Infinity" mnemonicParsing="false"
onAction="#actionLogin" prefHeight="27.0" prefWidth="86.0" text="Вход" />
<Button fx:id="btRegistration" layoutX="176.0" layoutY="194.0" mnemonicParsing="false"
onAction="#actionRegistration" text="Регистрация" />
</AnchorPane>
Ошибка
Exception in Application init method
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.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application init method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:912)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:956)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:747)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
at com.spring.app.AbstractJavaFxApplicationSupport.init(AbstractJavaFxApplicationSupport.java:47)
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:841)
... 2 more
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:1249)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.access$600(EntityManagerFactoryBuilderImpl.java:120)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:860)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:343)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:318)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
... 17 more
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.spring.app.entity.Person
at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:277)
at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:224)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:775)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3799)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
... 25 more
Exception running application com.spring.app.Application
Process finished with exit code 1