巴塞尔 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/",
)
我刚开始将我的项目移植到 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/",
)