我目前收到了上面的错误消息以及我测试过的所有内容都没有帮助。
我的程序昨天正常运行。今天我想把这个项目分成两部分。一个应该是数据库层(因为它应该被多个项目使用,从现在开始在dataProj
上调用),第二个是GUI(从现在开始在GUIProj
上调用)。
正如我通常所做的那样,我现在在Project -> Propterties -> Java Build Path -> Projects
与dataProj
的新关系下写入了guiProj。
我在tomcat中做的一样,就是这样:
“Tomcat -> Add and Remove...
”发布guiProj
“Tomcat -> Open -> Open launch configuration -> Classpath
”添加dataProj
由于失败,我现在写了两个(GUIProj and dataProj
)pom.xml信息:
guiProj pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.test.multi</groupId>
<artifactId>guiProj</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>my testproject</name>
<parent>
<groupId>de.test.multi</groupId>
<artifactId>dataProj</artifactId>
<version>1.0</version>
</parent>
...
<dependencies>
...
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.13</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.13</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.11.Final</version>
</dependency>
</dependencies>
</project>
dataProj pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.test.multi</groupId>
<artifactId>dataProj</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<name>my data project</name>
...
<dependencies>
...
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.13</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.13</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.11.Final</version>
</dependency>
</dependencies>
</project>
如果我现在开始localhost:8080 / guiProj
GUI出现,没有任何问题。在我想要使用dataProj
类的那一刻,我收到了这个错误:
WARNUNG: #{login.loginControl}: java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion
javax.faces.FacesException: #{login.loginControl}: java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/hibernate/criterion/Criterion
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 27 more
有没有人知道,为什么会出现这种失败?如果您需要更多信息,请告诉我。
我现在检查了有关该主题的多个答案,但该解决方案并不适用于我自己。
非常感谢,感谢您的帮助。
祝你好运 的Björn
因重复而解释: 我不认为它是重复的,与发布有关,在这里标记。因为maven加载了我自己而不喜欢它的库是在链接的帖子中,缺少hibernate库。这些项目在Deployment Assembly中配置,将jar放在WEB-INF / lib。
中答案 0 :(得分:-1)
您需要在guiProj
和dataProj
之间建立依赖关系,以便guiProj
能够真正使用您的dataProj
以下是一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.gouv.finances.douane.gun.edop</groupId>
<artifactId>check-dau-service</artifactId>
<version>0.2.0-SNAPSHOT</version>
<packaging>war</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<properties>
<java.version>1.7</java.version>
<war.finalName>checkDAU</war.finalName>
</properties>
...
另外,我建议你让你的项目模块化。
这是一个很好的文档:http://books.sonatype.com/mvnex-book/reference/multimodule.html