簡體   English   中英

Grails-嘗試將nojars應用程序部署到glassfish 3.0.1中

[英]Grails - trying to deploy a nojars application into glassfish 3.0.1

由於內存限制,我試圖構建一個具有較小內存占用的grails應用。 我用“ --nojars”這個參數來打架。 我創建了一個沒有所有jar的war文件,當我在glassfish中部署時遇到此錯誤

加載應用程序時發生異常:java.lang.Exception:java.lang.IllegalStateException:ContainerBase.addChild:開始:org.apache.catalina.LifecycleException:java.lang.IllegalArgumentException:java.lang.ClassNotFoundException:org.codehaus.groovy。 grails.web.util.Log4jConfigListener

似乎應用程序無法找到jar文件的位置。

在將應用程序部署到glassfish之前,我已經指出了該庫的路徑。

我錯過了嗎?

通常建議使用GlassFish的Common Classloader 這意味着將共享的JARS放入$ domain-dir / lib文件夾(但放入該文件夾的子文件夾)。

您可能正在嘗試將應用程序類加載器asadmin deploy --libraries命令一起使用。 這更加復雜且容易出錯。 如果您不需要具有不同Web應用程序的相同JAR的不同版本,則絕對應該使用上面指定的Common Classloader

另請參閱類加載器層次結構以獲取參考。


編輯根據提問者的評論進行了更新:

domain/domain1/lib文件夾肯定可以工作(我已經測試過)。 要驗證這一點,請將log4j.jar放入該文件夾,然后將test.jsp添加到domain1/applications/$applicationName ,其中僅包含:

<% out.println(
    org.apache.log4j.Logger.getLogger(this.getClass())); %>

如果可以,但是您的其他代碼不起作用,則可能需要考慮另一點:您在Logger.getLogger(..)使用Log4J的Logger.getLogger(..)還是Apache Commons的LogFactory.getInstance(..)

有關相關問題,請參閱使用Jakarta Commons Logging時遇到的類加載器問題分類法 -我也建議您發布完整的堆棧跟蹤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM