首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Virgo服务器插件解析器冲突

Virgo服务器插件解析器冲突
EN

Stack Overflow用户
提问于 2018-03-07 10:21:10
回答 1查看 84关注 0票数 0

我有两个包,A导出两个包,然后B使用这两个包(org.dom4j,org.dom4j.io),B仍然使用由其他包导出的spring包。如果我先加载包A,然后在osgi控制台中加载包B,则不存在解析器问题。

但是,如果我将这两个包放在一起,if将在synthetic.context包中失败,并说"Uses violation:

A的清单:

代码语言:javascript
复制
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: device-openapi
Bundle-SymbolicName: device-openapi
Bundle-Version: 1.0.0
Export-Package: com.google.gson,
 com.google.gson.annotations,
 com.google.gson.internal,
 com.google.gson.internal.bind,
 com.google.gson.reflect,
 com.google.gson.stream,
 org.apache.commons.codec,
 org.apache.commons.codec.binary,
 org.apache.commons.codec.digest,
 org.apache.commons.codec.language,
 org.apache.commons.codec.language.bm,
 org.apache.commons.codec.net,
 org.apache.commons.io,
 org.apache.commons.io.comparator,
 org.apache.commons.io.filefilter,
 org.apache.commons.io.input,
 org.apache.commons.io.monitor,
 org.apache.commons.io.output,
 org.apache.commons.lang3,
 org.apache.commons.lang3.builder,
 org.apache.commons.lang3.concurrent,
 org.apache.commons.lang3.event,
 org.apache.commons.lang3.exception,
 org.apache.commons.lang3.math,
 org.apache.commons.lang3.mutable,
 org.apache.commons.lang3.reflect,
 org.apache.commons.lang3.text,
 org.apache.commons.lang3.text.translate,
 org.apache.commons.lang3.time,
 org.apache.commons.lang3.tuple,
 org.apache.commons.logging,
 org.apache.commons.logging.impl,
 org.apache.http,
 org.apache.http.annotation,
 org.apache.http.auth,
 org.apache.http.auth.params,
 org.apache.http.client,
 org.apache.http.client.config,
 org.apache.http.client.entity,
 org.apache.http.client.methods,
 org.apache.http.client.params,
 org.apache.http.client.protocol,
 org.apache.http.client.utils,
 org.apache.http.concurrent,
 org.apache.http.config,
 org.apache.http.conn,
 org.apache.http.conn.params,
 org.apache.http.conn.routing,
 org.apache.http.conn.scheme,
 org.apache.http.conn.socket,
 org.apache.http.conn.ssl,
 org.apache.http.conn.util,
 org.apache.http.cookie,
 org.apache.http.cookie.params,
 org.apache.http.entity,
 org.apache.http.entity.mime,
 org.apache.http.entity.mime.content,
 org.apache.http.impl,
 org.apache.http.impl.auth,
 org.apache.http.impl.client,
 org.apache.http.impl.conn,
 org.apache.http.impl.conn.tsccm,
 org.apache.http.impl.cookie,
 org.apache.http.impl.entity,
 org.apache.http.impl.execchain,
 org.apache.http.impl.io,
 org.apache.http.impl.pool,
 org.apache.http.io,
 org.apache.http.message,
 org.apache.http.params,
 org.apache.http.pool,
 org.apache.http.protocol,
 org.apache.http.util,
 org.apache.log4j,
 org.apache.log4j.chainsaw,
 org.apache.log4j.config,
 org.apache.log4j.helpers,
 org.apache.log4j.jdbc,
 org.apache.log4j.jmx,
 org.apache.log4j.lf5,
 org.apache.log4j.lf5.util,
 org.apache.log4j.lf5.viewer,
 org.apache.log4j.lf5.viewer.categoryexplorer,
 org.apache.log4j.lf5.viewer.configure,
 org.apache.log4j.net,
 org.apache.log4j.nt,
 org.apache.log4j.or,
 org.apache.log4j.or.jms,
 org.apache.log4j.or.sax,
 org.apache.log4j.pattern,
 org.apache.log4j.rewrite,
 org.apache.log4j.spi,
 org.apache.log4j.varia,
 org.apache.log4j.xml,
 org.dom4j,
 org.dom4j.bean,
 org.dom4j.datatype,
 org.dom4j.dom,
 org.dom4j.dtd,
 org.dom4j.io,
 org.dom4j.jaxb,
 org.dom4j.rule,
 org.dom4j.rule.pattern,
 org.dom4j.swing,
 org.dom4j.tree,
 org.dom4j.util,
 org.dom4j.xpath,
 org.dom4j.xpp,
 org.json,
 org.wcc.crypt,
 org.wcc.framework
Import-Package: javax.crypto,javax.crypto.spec,javax.naming,javax.nami
 ng.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,ja
 vax.net,javax.net.ssl,javax.security.auth.x500

B的清单:

代码语言:javascript
复制
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: NGCPlugin-service
Bundle-SymbolicName: com.myplugin.esdk.storage.service
Bundle-Version: 1.5.50
Bundle-Vendor: myplugin
Bundle-ClassPath: .
Tool: Bundlor 1.1.0.RELEASE
Export-Package: com.myplugin.esdk.storage.mvc,
 com.myplugin.esdk.storage.service.datastore,
 com.myplugin.esdk.storage.service.device,
 com.myplugin.esdk.storage.service.host,
 com.myplugin.esdk.storage.service.mount,
 com.myplugin.esdk.storage.service.resource,
 com.myplugin.esdk.storage.service.snapshot,
 com.myplugin.esdk.storage.service.vm
Import-Package: org.apache.commons.logging,
 org.dom4j,
 org.dom4j.io,
 org.json,org.w3c.dom,
 org.xml.sax,
 org.apache.commons.codec,
 org.apache.commons.codec.binary,
 org.apache.commons.codec.digest,
 org.apache.commons.codec.language,
 org.apache.commons.codec.language.bm,
 org.apache.commons.codec.net,
 org.apache.commons.io,
 org.slf4j,
 org.springframework.beans.factory.annotation

错误日志:

代码语言:javascript
复制
Resolver report:
        Uses violation: <Import-Package: org.springframework.beans.factory.annotation; version="0.0.0"> in bundle <com.myplugin.esdk.storage.ngc-2.1.7-com.myplugin.esdk.storage.service_1.5.50[1520387337960]>
             Resolver reported uses conflict for import
        An Import-Package could not be resolved. Resolver error data <Import-Package: com.myplugin.esdk.storage.service.snapshot; version="0.0.0">. Caused by missing constraint in bundle <com.myplugin.esdk.storage.ngc-2.1.7-synthetic.context_2.1.7>
             constraint: <Import-Package: com.myplugin.esdk.storage.service.snapshot; version="0.0.0"> constrained to bundle <com.myplugin.esdk.storage.ngc-2.1.7-com.myplugin.esdk.storage.service> constrained bundle version range "[1.5.50,1.5.50]"
            with attributes {module_scope=com.myplugin.esdk.storage.ngc-2.1.7}

有人知道怎么解决这个问题吗?我尝试创建一个虚拟包,它使用Import-Bundle导入两个包的所有导出包,在我手动加载A和B包后,这些都不是解析器错误......

EN

回答 1

Stack Overflow用户

发布于 2018-03-08 00:03:33

我不熟悉PAR文件的部署,当使用Virgo时,我通常会部署计划文件。也就是说,我怀疑这个问题可能是因为A导出了一些包org.apache*,这些包可能已经被Virgo中包含的其他包导出了,并且是Spring的依赖项。因此,当您的PAR被解决时,计划B发现自己处于这样的情况:相同的包从A继承,也通过传递依赖从Spring继承。

我会尝试从清单中删除Virgo已经提供的所有包的导出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49143087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档