Я знаю, что это обсуждалось много, но почему-то ни один из ранее заданных вопросов не применим к моему делу. При загрузке моего приложения я получаю следующую трассировку стека:NoClassDefFoundError: DataAccessException с использованием пружины
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
at java.lang.Class.getConstructor0(Class.java:3067)
at java.lang.Class.newInstance(Class.java:408)
at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:923)
at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:967)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:216)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2701)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2521)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2435)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2403)
at de.festo.rs.windows.FXApplStarter$1.run(FXApplStarter.java:29)
at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292)
at com.sun.javafx.application.PlatformImpl$$Lambda$55/29905907.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformImpl.java:291)
at com.sun.javafx.application.PlatformImpl$$Lambda$54/20965065.run(Unknown Source)
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$141(WinApplication.java:102)
at com.sun.glass.ui.win.WinApplication$$Lambda$46/6575340.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.springframework.dao.DataAccessException
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 24 more
В большинстве нитей я читал относительно подобных ошибок люди действительно не хватает весенне-ТХ баночку, которую я определенно don't. Она объявлена в моих зависимости Maven вместе с другими весенними банками neededd так:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
При исследовании моего развернутого вывода, что банки находятся там. Тем не менее указанная ошибка бросается. Я действительно в отчаянии с этим. Обратите внимание, что приложение не является WebApp, а представляет собой отдельное приложение, загруженное из другой программы.
Смешно, что мой коллега не может воспроизвести ошибку. По этой причине я предполагаю, что это какой-то гоночный статус между загрузчиком JavaFX, загружающим результат запроса spring-jdbc в его datamodel. У меня нет никаких доказательств для этого, это всего лишь инстинкт кишки. Любая помощь или tipp были бы действительно оценены. Если необходима дополнительная информация, пожалуйста, дайте мне знать.
0 Как у вас? Это почти наверняка будет проблемой класса. – Max
попытайтесь добавить [spring-dao] (http://mvnrepository.com/artifact/org.springframework/spring-dao/2.0.3) к вашему pom.xml – drgPP
Я загружаю свой JavaFXApp с помощью FXMLLoader, который затем имеет ссылку его контроллера, как это: 'FX: контроллер = "foo.bar.Controller"' , который в свою очередь загружает шаблон весна: JDBC 'this.jdbcTemplate = новый JdbcTemplate (DatabaseConnectionFactory.getDataSource (система)) ; ' – Wingie