Java 在Karaf中激活ApacheFelixHTTP包
我们正在未连接到internet的内部网络上运行apache-karaf-4.2.0。我们试图让一个HTTP服务器在Karaf中运行,我们决定使用Java 在Karaf中激活ApacheFelixHTTP包,java,jetty,apache-karaf,apache-felix,Java,Jetty,Apache Karaf,Apache Felix,我们正在未连接到internet的内部网络上运行apache-karaf-4.2.0。我们试图让一个HTTP服务器在Karaf中运行,我们决定使用org.apache.felix.HTTP.bundle-3.0.0.jar,因为它在一个jar中包含我们需要的所有内容(而不是在Karaf中带回HTTP功能中列出的所有内容) 以下是我重现问题的步骤: 下载一份apache-karaf-4.2.0.tar.gz的副本并卸载它 下载org.apache.felix.http.bundle-3.0.0.j
org.apache.felix.HTTP.bundle-3.0.0.jar
,因为它在一个jar中包含我们需要的所有内容(而不是在Karaf中带回HTTP
功能中列出的所有内容)
以下是我重现问题的步骤:
org.apache.felix.http.bundle-3.0.0.jar的副本
mkdir-psystem/org/apache/felix/org.apache.felix.http.bundle/3.0.0/
org.apache.felix.http.bundle-3.0.0.jar
复制到刚刚创建的目录中
创造system/org/apache/karaf/features/standard/4.2.0/standard-4.2.0-features.xml
之前添加以下内容
行(请参见下文,因为我无法将其嵌入此列表):etc/custom.properties
org.apache.felix.jettyEnabled=
正确
/bin/karaf
功能:安装felix http
standard-4.2.0-features.XML
文件中XML的外观:
<feature name="felix-http" description="Apache Felix HTTP Bundle" version="4.2.0">
<bundle>mvn:org.apache.felix/org.apache.felix.http.bundle/3.0.0</bundle>
<config name="org.apache.felix.http">
org.osgi.service.http.port=8888
</config>
</feature>
mvn:org.apache.felix/org.apache.felix.http.bundle/3.0.0
org.osgi.service.http.port=8888
如果我理解不兼容ClassChangeError
这意味着某个东西是用其他东西的旧版本编译的。我假设其他东西是jetty
,但没有其他东西提供它。所以我很困惑
如果有人对如何继续调试和/或修复此问题有任何想法,我将不胜感激。您确定没有其他jetty实例正在运行吗?我不确定,但我非常确定:)正如我在原始帖子中所说,我只安装了列出的功能,我已经查看了它们,但它们似乎都没有提供任何与Jetty相关的功能。