当前位置: 首页 > 知识库问答 >
问题:

Docker容器中的Apache POI

邓禄
2023-03-14
FROM icr.io/ibm/liberty:20.0.0.6-wl-full

   # Add my app and config
   COPY --chown=1001:0  Home.war            /config/apps/
   COPY --chown=1001:0  server.xml          /config/
   COPY --chown=1001:0  server.env          /config/

   # Add DB2 libraries
   COPY --chown=1001:0  Shared/DB2/         /config/myLib/DB2/

   # Add Common libraries
   COPY --chown=1001:0  Shared/Commons/     /config/myLib/Commons/

   # Add Jackson libraries
   COPY --chown=1001:0  Shared/Jackson/     /config/myLib/Jackson/

   # Add POI libraries
   COPY --chown=1001:0  Shared/POI/         /config/myLib/POI/
    XSSFWorkbook wb = new XSSFWorkbook();

我不是docker的专家,也许我缺少一些基本配置。有什么想法为什么我不能使用POI?提前道谢。

共有1个答案

朱鹏
2023-03-14

终于我发现了问题所在。我在这里张贴的解决方案,以防有人发现它有用。

在docker容器中使用POI完全没有问题。我将POI库声明为共享库。而是那些应用程序不可用的POI库。没有错误或异常。应用程序就会冻结。

我试着把图书馆包括在战争中,一切都很好。所以,显然是能见度的问题。

   <webApplication contextRoot="/" id="Home" location="Home.war" name="Home"> 
        <application-bnd>

    ...

        </application-bnd>

        <classloader privateLibraryRef="DB2,Commons,Jackson,POI"/>
    </webApplication>

    <library id="DB2">
        <fileset dir="${server.config.dir}/myLib/DB2" id="DB2" includes="db2jcc4.jar db2jcc_license_cu.jar" scanInterval="5s"/>
    </library>
    <library id="Jackson">
        <fileset dir="${server.config.dir}/myLib/Jackson" id="Jackson" includes="*.jar" scanInterval="5s"/>
    </library>
    <library id="Commons">
        <fileset dir="${server.config.dir}/myLib/Commons" id="Commons" includes="*.jar" scanInterval="5s"/>
    </library>
    <library id="POI">
        <fileset dir="${server.config.dir}/myLib/POI" id="POI" includes="*.jar" scanInterval="5s"/>
    </library>
 类似资料:
  • 我认为这是因为容器没有JAVA_HOME变量集。我执行了和尝试命令,但它没有显示java可执行文件。此外,java和javac命令不起作用。 有人知道我做错了什么吗?如有任何帮助,不胜感激。提前感谢!

  • 1、启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 1.1 新建并启动 所需要的命令主要为 docker run。 例如,下面的命令输出一个 “Hello World”,之后终止容器。 $ sudo docker run ubuntu:14.0

  • 我使用docker撰写启动一个mysql da和一个springstart应用程序。 这是我的docker-compose.yml 这是我的application.properties 在这里,我创建了jdbi: 不管我怎么做,我都无法让集装箱在码头内相互交谈。如果我单独启动sql,我可以在主机中看到连接(在datagrip中)。如果我从容器中运行java程序,它会看到主机中的数据库。即使我运行d

  • 我正在寻找一种从docker容器内部使用GPU的方法。

  • 我正在使用Spring Cloud创建微服务架构。 我正在使用Spring Cloud中的以下功能 Zuul–API网关服务,提供动态路由、监控、弹性、安全等功能- 功能区–客户端负载平衡器 Faign–声明性REST客户端 Eureka–服务注册和发现 Sleuth–通过日志进行分布式跟踪 Zipkin–具有请求可视化的分布式跟踪系统 Hystrix-适用于所有API的断路器、容错、Hystri

  • 我在Docker容器中安装了Oracle数据库,但不知道如何成为root用户。如果我从主人那里听到这个 或者 我得到 如果我做了 从主机,然后 从容器中,它询问root密码,但我不知道。 Hy主机操作系统是Ubuntu 18.04,链接到docker文件 编辑1: 发现了一个Docker错误。