0

gretty を使用してスプリング ブート プロジェクトを開始すると、NoClassDefFoundError が発生しました。プロジェクトは次のように構成されています。ProjectA は単純な webapp プロジェクトで、ProjectB と ProjectC は単純な Java プロジェクトです。

projectA:

@RestController
public class AController {

    @RequestMapping(value = "/print",method = RequestMethod.GET)
    public String print(){
        new BClass().print();
        return this.getClass().getName();
    }
}

apply plugin: 'org.akhikhl.gretty'

gretty{
    springBoot = true
    port = 8080
    contextPath = '/'
    servletContainer = 'tomcat8'
    managedClassReload = true
}

dependencies{

    compile "org.springframework.boot:spring-boot-starter-web"

    compile project(":projectB")

}

ProjectB:

public class BClass {
    public void print(){
        new CClass().print();
        System.out.println(this.getClass().getName());
    }
}

dependencies{
    compile project(":projectC")
}

ProjectC:

public class CClass {
    public void print(){
        System.out.println(this.getClass().getName());
    }
}

開始コマンド:

gradle :projectA:appRun

次にアクセスします:http://localhost:8080/print 私は java.lang.NoClassDefFoundError: com/project/c/CClass を取得しました。これは、ProjectA が ProjectC のクラスを簡潔に参照しているように見えますが、ProjectC をクラスパスに含めないでください。どうすればこれを行うことができますか?ありがとう

gretty プラグイン: https://github.com/akhikhl/gretty

4

1 に答える 1

0

本当にどうしようもありませんが、同じ問題が発生することを確認できます。私もあなたと同じようにSpring Bootを使用していますが、それが問題の一部であるかどうか疑問に思っています。

于 2016-04-26T21:42:03.060 に答える