我有這種令人困惑的情況。當我從控制檯運行mvn clean install org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run-war
時,我的Maven Java Web應用程序啓動。但是,當我在Eclipse上配置Tomcat,並開始我得到下面的異常服務器:Tomcat不會在eclipse上啓動
Caused by:javax.persistence.PersistenceException[PersistenceUnit: persistence-unit] class or package not found
.....
Caused by: java.lang.ClassNotFoundException: com.my.package.MyClass
......
我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="persistence-unit">
<class>com.my.package.MyClass</class>
<class>com.my.package.MyClassTwo</class>
<class>com.my.package.MyClassThree</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
現在存在persistence.xml中定義的所有類,可以達到使用ctrl +在persistence.xml中單擊,所以顯然包和類名是100%正確的。搜索arround我已經嘗試瞭解決方案:https://stackoverflow.com/a/18073429。當我註釋掉類標籤我沒有得到任何的啓動異常,但應用程序不會真正開始,因爲我在嘗試訪問該應用程序時,differrent例外:
javax.servlet.ServletException: Expression Error: Named Object: entityConverter not found.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
這entityConverter標註有@FacesConverter(value = "entityConverter")
,這是妥善處理這樣的轉換器,所以我在這裏也看不到問題。
現在主要的困惑是,應用程序啓動時運行良好,使用其他電腦與完全相同的Tomcat實例(複製tomcat,複製設置等),它幾次,在隨機工作的機器上,我得到這些異常,但我在eclipse上做了alt + f5項目刷新,並且它再次停止工作。兩臺機器之間沒有更改設置(使用相同的存儲庫,相同版本構建)。任何見解,將不勝感激。
您是否使用JPA作爲持久提供者? –
如果它在cmd上運行,不會在eclipse中提示,那麼它的eclipse的構建路徑問題。運行'mvn eclipse:eclipse'然後刷新eclipse項目然後嘗試。 –
嘗試新的日食和新的工作區。 (eclipse是否將導入的項目標識爲maven項目?) – sura2k