Tôi đã tạo các lớp với XMLBeans từ một tệp xsd và đóng gói chúng trong tệp jar. sau đó tôi đã thêm jar đó vào classpath của project trong eclipse và mọi thứ biên dịch và chạy tốt. tôi đã xây dựng một đế file jar mình từ dự án của tôi với Maven và một lần nữa xây dựng thành công, nhưng khi tôi cố gắng chạy nó tôi nhận được lỗi này:Lỗi khi sử dụng các lớp đã tạo XmlBeans
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.oblicore.oblisync.resolutions.TestsDocument$Factory.parse(TestsDo
cument.java:126)
at com.oblicore.oblisync.handlers.TransferEntitiesHandler.getResolution(
TransferEntitiesHandler.java:117)
at com.oblicore.oblisync.handlers.TransferEntitiesHandler.resolveConflic
ts(TransferEntitiesHandler.java:103)
at com.oblicore.oblisync.main.Orchestrator.run(Orchestrator.java:107)
at com.oblicore.oblisync.main.Orchestrator.main(Orchestrator.java:58)
Caused by: java.lang.RuntimeException: Cannot load SchemaTypeSystem. Unable to l
oad class with name schemaorg_apache_xmlbeans.system.s8B21CFFFCFED0B2438C2585C61
F113F7.TypeSystemHolder. Make sure the generated binary files are on the classpa
th.
at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:7
83)
at com.oblicore.oblisync.resolutions.TestsDocument.<clinit>(TestsDocumen
t.java:19)
... 5 more
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s8
B21CFFFCFED0B2438C2585C61F113F7.TypeSystemHolder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:7
69)
... 6 more
Lớp thiếu là trong jar tôi tạo ra với XMLBeans, làm thế nào để tôi nói với maven để thêm nó vào jar nó tạo ra từ dự án của tôi?
Tôi đã refrased câu hỏi của tôi để giải thích tốt hơn những gì tôi cần – Tomer
Để xây dựng jar với phụ thuộc bạn có thể sử dụng maven-lắp ráp plugin, nơi bạn cần phải xác định tất cả các lọ nó nên bao gồm, mẫu pom có thể được tìm thấy ở đây http: // maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html – mprabhat
Khi bạn xây dựng một dự án JAR với Maven, JAR chỉ chứa các lớp từ dự án đó. Nó không chứa các JAR cần thiết để xây dựng nó, cũng như các JAR cần thiết để thực thi (chủ yếu, nhưng không phải luôn luôn là các JAR). Tuy nhiên, nếu bạn đóng gói dự án của mình như là một WAR hoặc EAR, Maven sẽ bao gồm tất cả các JAR mà POM của bạn liệt kê dưới dạng các phụ thuộc thời gian chạy. Nếu bạn không cần một WAR hoặc EAR, thì đề xuất lắp ráp-plugin ở trên là đơn giản hơn (sử dụng tùy chọn jar-with-dependencies). –