【问题标题】:Tomcat 9 unable find org.apache.ibatis inside docker container with java 17Tomcat 9 无法在带有 java 17 的 docker 容器中找到 org.apache.ibatis
【发布时间】:2022-02-01 00:01:39
【问题描述】:

我正在尝试重写现有的 java 应用程序以将其升级到 java17 和 tomcat 9 以及 dockerization 但是,当我尝试在 docker 容器中运行它时,我看到了下面的错误

Caused by: java.lang.Error: Unresolved compilation problems: 
The import org.apache.ibatis cannot be resolved
The import org.apache.ibatis cannot be resolved
BaseTypeHandler cannot be resolved to a type
The method getNullableResult(ResultSet, String) of type StringBoolHandler must override or implement a supertype method
The method getNullableResult(ResultSet, int) of type StringBoolHandler must override or implement a supertype method
The method getNullableResult(CallableStatement, int) of type StringBoolHandler must override or implement a supertype method
JdbcType cannot be resolved to a type

at com.XXX.XXX.mybatis.typehandlers.StringBoolHandler.<init>(StringBoolHandler.java:11)

但是StringBoolHandler类的上述方法被覆盖了,IDE中也没有编译器错误

我能够在 IDE 中成功启动和运行应用程序

这是我的 docker 文件

FROM openjdk:17-jdk
FROM maven:3.8.4 as maven_builder
WORKDIR /app
ADD src /app/src
ADD war /app/war
#Prepare by downloading dependencies
ADD pom.xml /app/pom.xml
RUN ["mvn", "dependency:resolve"]
RUN ["mvn", "verify"]
#Adding source, compile and package into a fat jar
RUN ["mvn","clean", "install", "-Dmaven.test.skip=true"]
FROM tomcat:9.0-jdk17
# adding new relic config
RUN mkdir -p /usr/local/tomcat/newrelic
COPY war/WEB-INF/lib/newrelic.jar /usr/local/tomcat/newrelic/newrelic.jar
COPY war/WEB-INF/newrelic.yml /usr/local/tomcat/newrelic/newrelic.yml
ENV JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/tomcat/newrelic/newrelic.jar"
COPY --from=maven_builder /app/target/xxx-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/xxx.war

我可以在 docker 容器中部署的应用程序的 lib 中找到 mybatis-3.5.7.jar

请随时向我建议任何类型的修改,以使我的 Dockerfile 更好

【问题讨论】:

    标签: java docker mybatis tomcat9 java-17


    【解决方案1】:

    好的,我通过更改 maven 版本修复了它

    问题在于 maven 在构建 war 文件时如何忽略 mybatis 导入一旦我降级了我的 maven 版本它开始工作

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 2016-06-01
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2021-12-15
      相关资源
      最近更新 更多