我在我的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