AWS/EKS 上的 Java 无法解析 org.osgi.framework.launch.FrameworkFactory 的正确版本

问题描述 投票:0回答:1

我们将 K8 安装提升/转移到 AWS/EKS 中,在一个集群中可以正常工作,而在其他集群中则无法解析正确的已加载 FrameworkFactory。我们有第三方 .JAR 和 Eclipse 配置,因此我们所做的就是使用 K8/EKS 的映像构建 maven/docker 版本。
我需要一些关于初创公司无法启动正确的 Eclipse OSGI 与 Core 的可能原因的想法。 OSGI - 工作示例正确解绑并创建 lib/配置文件和工作区文件夹。坏示例未能做到这一点,并且 main /libs 没问题,但配置和工作区导致主线程在启动时抛出。

    Good - [Loaded org.osgi.framework.launch.FrameworkFactory from file:/usr/share/pm.health.rating.engine/lib/org.eclipse.osgi-3.9.1.jar]
vs
Bad - [Loaded org.osgi.framework.launch.FrameworkFactory from file:/usr/share/pm.health.rating.engine/lib/org.osgi.core-4.3.1.jar]

还有

POM.XML

<dependencies>
    <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
    </dependency>
    <dependency>
        <groupId>net.logstash.log4j</groupId>
        <artifactId>jsonevent-layout</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>${aws.version}</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-sts</artifactId>
        <version>${aws.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
    </dependency>
    <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.eclipse.platform/org.eclipse.osgi -->
    <dependency>
        <groupId>org.eclipse.osgi</groupId>
        <artifactId>org.eclipse.osgi</artifactId>
        <version>3.9.1</version>
    </dependency>
    <dependency>
        <groupId>com.vendor.pm</groupId>
        <artifactId>pmrs</artifactId>
        <version>${pmrs.version}</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>19.0</version>
    </dependency>
    <!-- Eos Runtime Services dependencies -->
    <dependency>
        <groupId>com.vendor.pm</groupId>
        <artifactId>eos-rs</artifactId>
        <version>4.2.9.4</version>
        <exclusions>
            <exclusion>
                <groupId>com.vendor.pm</groupId>
                <artifactId>pmrs</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.jexcelapi</groupId>
        <artifactId>jxl</artifactId>
        <version>2.6.12</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>1.9.0</version>
    </dependency>
    <dependency>
        <groupId>com.rackspace.apache</groupId>
        <artifactId>xerces2-xsd11</artifactId>
        <version>2.11.2</version>
    </dependency>
    <!-- ADDED TO AVOID THE SAX PARSER WARNINGS -->
    <dependency>
        <groupId>xalan</groupId>
        <artifactId>xalan</artifactId>
        <version>2.7.1</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.15</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.15</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/javax.xml.parsers/jaxp-api -->
    <dependency>
        <groupId>javax.xml.parsers</groupId>
        <artifactId>jaxp-api</artifactId>
        <version>1.4.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.vendor.eos.groupref</groupId>
        <artifactId>com.fja.eos.groupref.formula.lib</artifactId>
        <version>1.0.0.202005041335</version>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-avro-serializer</artifactId>
        <version>5.5.1</version>
    </dependency>

openjdk版本“1.8.0_402”OpenJDK运行时环境(构建 1.8.0_402-b06) OpenJDK 64 位服务器虚拟机(版本 25.402-b06,混合模式)

NAME=“红帽企业 Linux”版本=“9.3(犁)”ID=“rhel” ID_LIKE="fedora" VERSION_ID="9.3" PLATFORM_ID="平台:el9" PRETTY_NAME="红帽企业 Linux 9.3(犁)" ANSI_COLOR="0;31" LOGO=“软呢帽标志图标” CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos" HOME_URL="https://www.redhat.com/" DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9" BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="红帽企业 Linux 9" REDHAT_BUGZILLA_PRODUCT_VERSION=9.3 REDHAT_SUPPORT_PRODUCT="红帽 企业 Linux"REDHAT_SUPPORT_PRODUCT_VERSION="9.3" 5.15.145 x86_64 架构:x86_64 CPU 操作模式:32 位、64 位 地址大小:
48 位物理,48 位虚拟字节顺序:
Little Endian CPU:8 个在线 CPU 列表:0-7 供应商 ID:
正品AMD 型号名称:AMD EPYC 7R13 处理器 CPU 系列:25 型号:
每个核心 1 个线程:每个插槽 2 个核心:
4 插座:1 步进:
1

java eclipse osgi amazon-eks
1个回答
0
投票

您不应该在运行时使用

osgi.core
jar。它不应该在您的类路径上。
org.eclipse.osgi
将包含运行时使用所需的 OSGi Core 包。

您可能需要确定哪个依赖项正在拉入

osgi.core
并从该依赖项中排除
osgi.core
。有可能(并且很可能)依赖项错误地使用了
scope=compile
而不是
scope=provided
来表示
osgi.core

© www.soinside.com 2019 - 2024. All rights reserved.