我在我的Grails項目中包含了一個jar,並且正在找到類未找到的問題。Grails無法在jar中找到類
buildConfig.groovy
dependencies {
compile "labServices:labServices:1.0"
}
repositories {
flatDir name:'labServices', dirs:'../LabServices/build/libs/'
}
- 當我檢查labServices罐子它含有的類
- 當我檢查它包含labServices.jar
將.war - 當我檢查戰爭部署的tomcat WEB_INF/lib包含jar
代碼失敗
//this is a class in the labServices.jar
def clarityCredentials = new Clarity("prod", "xxxx", "xxxx")
錯誤
org.petermac.util.Clarity。堆棧跟蹤如下: 拋出java.lang.ClassNotFoundException:org.petermac.util.Clarity
我已經運行清理,沖洗常春藤緩存,手動刪除一切,仍然沒有工作。它也在本地運行,並通過單元測試(所以這是戰爭)
注意:依賴項 - 報告顯示沒有依賴關係labServices即使有一些。這可能是一個問題嗎?
我對Grails(來自Microsoft)相對來說比較新,所以任何技巧,想法或調試技術都會很棒。
我敢肯定,當部署
UPDATE 實際代碼無關去除
import org.petermac.util.Clarity
public class LoadClarityController extends BaseController {
def load()
{
String samples = params.get("sampleIds")
def clarityCredentials = new Clarity("prod", "apiuser", "[email protected]")
}
}
//in LabServices (jar is being included in war)
package org.petermac.util
public class Clarity
{
public Clarity(server, username, password)
{
}
}
的路徑,甚至出現在META-INF(戰爭)是類路徑的設置。另外我還有另外一個外部的jar包,它工作正常嗎?我很茫然。
是的,Clarity.class在org/....但LoadClarityController.class(來自戰爭)的來源沒有引用util.Clarity(沒有任何進口是....應該它? – GarethReid 2015-02-11 05:43:25
如果控制器與其使用的類不在同一個包中,則需要導入,就像在任何Java或Groovy類中一樣。但是它抱怨說它找不到'org.petermac.util.Clarity' ,所以你必須導入它,對嗎?什麼是控制器類? – 2015-02-11 06:56:18
我已經在更新後的帖子底部添加了代碼的最基本的東西,讓我知道這是否有幫助 – GarethReid 2015-02-11 22:26:31