2013-04-16 68 views
3

我正在使用grails應用程序並試圖將其部署到glassfish。然而,在部署過程中,我得到以下錯誤:將Grails部署到Glassfish和slf4j

從服務器日誌:

[#|2013-04-16T07:53:21.540-0400|INFO|glassfish3.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=91;_ThreadName=Thread-1;|2013-04-16 07:53:21,540 [admin-thread-pool-7720(2)] ERROR context.ContextLoader - Context initialization failed 

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is **java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V** 
       at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420) 
       at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342) 

       at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 

......

在我的系統類路徑中,我有以下文件: SLF4J-API-1.5.6。 jar,slf4j-api-1.5.6.jar,slf4j-log4j12-1.5.6.jar。

我認爲問題在於Grails嘗試從slf4j 1.6(我在Grails 2.1.0中)加載該方法。我希望Grails使用它的webapps類路徑而不是使用系統類路徑。

我該怎麼做?

回答

1

如果我沒有記錯,你不能有同一庫的兩個版本在你的容器,所以你需要是這樣的版本在你的classpath升級到1.6

+0

其實我解決了這個。令我驚訝的是glassfish尊重weblogic.xml文件。我所做的是創建了一個weblogic.xml文件,並在其中添加了以下行: – tsure