簡體   English   中英

Bazel java.lang.ClassNotFoundException:javax.servlet.http.HttpSessionIdListener

[英]Bazel java.lang.ClassNotFoundException: javax.servlet.http.HttpSessionIdListener

我剛剛開始將項目移植到bazel。 我有一個Java項目。 在我的主文件中,我有此代碼

ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);

我能夠很好地構建代碼...但是,當我嘗試運行時,出現以下異常

java.lang.ClassNotFoundException: javax.servlet.http.HttpSessionIdListener

我正在使用依賴

maven_jar(
        name = "javax_servlet_javax_servlet_api",
        artifact = "javax.servlet:javax.servlet-api:3.1.0",
        repository = "http://uk.maven.org/maven2/",
        sha1 = "6bf0ebb7efd993e222fc1112377b5e92a13b38dd",
    )

哪個應該有這個文件。 可能是什么問題。

java_binary(

        name = "app",
        main_class = "com.example.Main",
        runtime_deps = [":allFiles"],
    )

    java_library(
        name = "allFiles",
        srcs = glob(["src/main/java/**/*.java"]),
        resources = glob(["src/main/resources/**/*"]),
        deps = [
            "//thirdparty:javax_servlet_javax_servlet_api",
            ...
    ])

以上是我在BUILD文件中的內容。 事實是,java庫allFiles構建良好。 但是當我運行app我得到了例外。 我知道調用主文件是因為我可以在Main.java文件中看到引發異常的行。

我發現了運行時錯誤。 最初,當我從maven pom文件生成依賴項時。 它給了我

maven_jar(
        name = "javax_servlet_javax_servlet_api",
        artifact = "javax.servlet:javax.servlet-api:3.0.1",
        repository = "http://uk.maven.org/maven2/",
        sha1 = "6bf0ebb7efd993e222fc1112377b5e92a13b38dd",
    )

但是碼頭服務器需要的版本是3.1.0,所以我將代碼更改為

 maven_jar(
            name = "javax_servlet_javax_servlet_api",
            artifact = "javax.servlet:javax.servlet-api:3.1.0",
            repository = "http://uk.maven.org/maven2/",
            sha1 = "6bf0ebb7efd993e222fc1112377b5e92a13b38dd",
        )

但是我沒能適應sha1。 刪除sha1解決了該問題。 現在,既沒有構建錯誤,也沒有運行時錯誤。

最后

 maven_jar(
                name = "javax_servlet_javax_servlet_api",
                artifact = "javax.servlet:javax.servlet-api:3.1.0",
                repository = "http://uk.maven.org/maven2/",
            )

暫無
暫無

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

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