2016-04-27 84 views
0

我有這種令人困惑的情況。當我從控制檯運行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項目刷新,並且它再次停止工作。兩臺機器之間沒有更改設置(使用相同的存儲庫,相同版本構建)。任何見解,將不勝感激。

+0

您是否使用JPA作爲持久提供者? –

+1

如果它在cmd上運行,不會在eclipse中提示,那麼它的eclipse的構建路徑問題。運行'mvn eclipse:eclipse'然後刷新eclipse項目然後嘗試。 –

+1

嘗試新的日食和新的工作區。 (eclipse是否將導入的項目標識爲maven項目?) – sura2k

回答

0

不能確定是什麼原因造成這一點,但使用sura2k的建議它是固定的。切換到Eclipse Mars,創建新的工作區,配置新的服務器,一切都按預期工作。