2011-05-17 40 views
7

我正在尋找一些信息,我還沒有發現其他地方,如標題所說:我找不到在哪裏GlassFish是存儲在運行時編譯JSP頁面,我已經看到在以下目錄:Glassfish 2.1在哪裏存儲緩存的JSP?

  • WEB -INF/JSP我部署的EAR下,不存在
  • 域1 /生成/ JSP/J2EE的應用程序的/ etc等具有
  • 我做的整個GlassFish的文件夾搜索沒有.java文件並且我沒有找到與JSP相關的任何.java文件...

任何其他提示?

我必須以某種方式設置Glassfish嗎?設置一些屬性? (我只在web容器中設置jspCachingEnabled = true)

在此先感謝。

+0

您是否使用控制Glassfish的IDE?如果是這樣,哪個? – BalusC 2011-05-17 15:11:20

+0

我正在使用Eclipse Helios,但無法將其設置爲直接部署到Glassfish,我嘗試了多次使用添加/刪除功能,但似乎沒有工作,服務器永遠停留在[Republish]上,因此我會手動部署使用其管理控制檯。 – OverLex 2011-05-17 15:15:12

+0

對不起,我在標題中忽略了您使用v2而不是v3。我的Eclipse插件也有不好的體驗。然而,v3的一個比真棒。 – BalusC 2011-05-17 15:57:10

回答

10

GlassFish在默認情況下編譯完成後,不會爲jsp保留生成的java源代碼。您可以通過添加下面的代碼片段到你的sun-web.xml文件更改...

<jsp-config> 
    <property name="keepgenerated" value="true"> 
     <description>Keep a copy of the generated servlet class' java code.</description> 
    </property> 

如果你的JSP(mypage.jsp)是在戰爭文件(MyWebApp.war的),那麼Java文件將

%GLASSFISH_HOME%\domains\domain1\generated\jsp\j2ee-modules\mywebapp_war\org\apache\jsp\mypage_jsp.java 

如果你的JSP(mypage.jsp)是在戰爭文件(MyWebApp.war的),這是一個EAR(myentapp.ear)的一部分,然後在java文件將

%GLASSFISH_HOME%\domains\domain1\generated\jsp\j2ee-apps\myentapp\mywebapp_war\org\apache\jsp\mypage_jsp.java 
+0

有趣的是,在問這個問題幾個小時後我找到了同樣的解決方案,因爲正確,謝謝你:)(現在我需要知道如何創建我的sun-web.xml) – OverLex 2011-05-18 13:14:51