2012-11-24 31 views
1

我開發了一個使用Netbeans與JSF,JPA和Primefaces的應用程序,並且在GlassFish服務器中正常工作。我想部署在Tomcat服務器上。我通過屬性更改了服務器,但項目無法清理併成功構建。我該如何正確更換服務器?將Java EE服務器從GlassFish更改爲Tomcat

詳情:

的Netbeans 7.3

GlassFish的3.1

的Tomcat 7

我打開使用Netbeans項目。 右鍵單擊項目並選擇GlassFish作爲服務器。 右鍵單擊並選擇清理和構建。它取得成功。 右鍵單擊並選擇運行。 Web應用程序開始運行完美。

然後,我通過Netbeans服務器窗口停止了GlassFish並啓動了Tomcat。

正確點擊並選擇項目屬性。將服務器更改爲Tomcat。 右鍵單擊並選擇清理並生成 並出現此錯誤。沒有Dist文件夾創建。

堆棧跟蹤如下。

An annotation processor threw an uncaught exception. 
Consult the following stack trace for details. 
java.lang.RuntimeException: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.faces.event.AjaxBehaviorEvent not found 
at  org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407) 
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793) 
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722) 
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97) 
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029) 
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163) 
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108) 
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824) 
at com.sun.tools.javac.main.Main.compile(Main.java:439) 
at com.sun.tools.javac.main.Main.compile(Main.java:353) 
at com.sun.tools.javac.main.Main.compile(Main.java:342) 
at com.sun.tools.javac.main.Main.compile(Main.java:333) 
at com.sun.tools.javac.Main.compile(Main.java:76) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:56) 
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1153) 
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:930) 
at org.netbeans.modules.java.source.ant.JavacTask.execute(JavacTask.java:145) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
at org.apache.tools.ant.Task.perform(Task.java:348) 
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
at org.apache.tools.ant.Task.perform(Task.java:348) 
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398) 
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
at org.apache.tools.ant.Task.perform(Task.java:348) 
at org.apache.tools.ant.Target.execute(Target.java:392) 
at org.apache.tools.ant.Target.performTasks(Target.java:413) 
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:283) 
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:541) 
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153) 
Caused by: com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.faces.event.AjaxBehaviorEvent not found 
C:\Users\Buddhika\Documents\ho\HealthOffice\nbproject\build-impl.xml:887: The following error occurred while executing this line: 
C:\Users\Buddhika\Documents\ho\HealthOffice\nbproject\build-impl.xml:309: Compile failed; see the compiler error output for details. 
BUILD FAILED (total time: 2 seconds) 

回答

8

GlassFish是一個羽翼豐滿的Java EE Web應用程序服務器,並附帶在其他JSF已經捆綁在一起。 Tomcat是一個準系統的JSP/Servlet容器,沒有附帶Java EE捆綁的其他東西。將JSF Web應用程序部署到Tomcat時,開發人員需要自行提供Web應用程序的/WEB-INF/lib或Tomcat的/lib中的JSF庫。

這個例外,它試圖告訴你,它無法找到一個JSF特定的類來編譯你的代碼,表明你沒有這樣做。 Download JSF 2.x並將javax.faces.jar文件放入webapp的/WEB-INF/lib或Tomcat的/lib中,您應該全部設置。

+0

我下載了javax.faces-2.1.14.jar並將它放在Tomcat服務器的lib文件夾中,然後重新啓動服務器。與之前相同的錯誤。然後我將該jar保存在該lib文件夾中,但通過項目屬性添加了相同的文件。這導致了現有類別中的幾個錯誤,例如,以下所有的輸入都不被識別。 import javax.persistence.EntityManager; import javax.persistence.Query; import javax.persistence.TemporalType; import javax.persistence.TypedQuery; –

+1

因此,您的最初問題已解決,並且您已進入下一個問題。這些類來自JPA。這也沒有捆綁在Tomcat中。您需要自己安裝JPA到Tomcat。爲什麼你從Glassfish轉移到Tomcat,甚至沒有考慮Tomcat是否真的支持你的webapp?你不能更好地考慮TomEE嗎? – BalusC

+0

非常感謝。是的,我可以繼續按照您的指示繼續使用JPA配置Tomcat。我重新考慮繼續使用GlassFish。我只想去Tomcat,因爲虛擬主機提供商給了我一個Tomcat託管計劃。所以我儘管我會堅持GlassFish,我會尋找一個具有GlassFish託管的虛擬服務器提供商。由於它不是免費的,我要去Tomcat。我也沒有聽說過TomEE,但是現在我將瞭解到,就像你所說的,我沒有理由放棄GlassFish。再次感謝您爲解釋一切而努力。 –

0

問:但該項目不能清潔和成功構建。

答:您的錯誤信息表示運行時間錯誤,不是嗎?

問:究竟什麼是失敗? Tomcat的?試圖編譯你的.war?只需嘗試在IDE中打開它?

問:如果是編譯器,那你怎麼編譯?從你的IDE?從ANT腳本?還有別的嗎?

問:你在使用IDE嗎?什麼樣的(如Netbeans)和哪個版本?

問:什麼平臺?

ALSO:

看看這個鏈接可能適用:

+0

已編輯添加您要求提問的詳細信息。謝謝 –

+1

這不是一個答案。作爲對這個問題的評論,這是比較合適的。 – BalusC

+0

@Buddhika Ariyaratne - 感謝您的更新。請閱讀我的鏈接,並請確保安裝JSF(您發佈錯誤消息的原因)。以及Tomcat可能會遺漏的其他組件。此鏈接也可能有所幫助:http://uaihebert.com/?p=1440祝你好運! – paulsm4

相關問題