首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apache (osgi)中的集成xero (发票网关)

apache (osgi)中的集成xero (发票网关)
EN

Stack Overflow用户
提问于 2019-07-20 18:22:30
回答 1查看 82关注 0票数 1

我有一个在karaf中包含多个模块的项目(3.0.3版),我需要在Xero (发票网关)- https://github.com/XeroAPI/Xero-Java中添加一个依赖项

我通过felix使用OSGI实现。在模块中,我将所有依赖项添加到Xero中,这些都在pom下面。

Pom.xml

代码语言:javascript
复制
  <dependency>
    <groupId>com.github.xeroapi</groupId>
    <artifactId>xero-java</artifactId>
    <version>${xero-java.version}</version>
  </dependency>
  <dependency>
    <groupId>com.github.xeroapi</groupId>
    <artifactId>xeroapi-schemas</artifactId>
    <version>${xero-schemas.version}</version>
  </dependency>
  <dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>${jaxb-api.version}</version>
  </dependency>
  <dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-core</artifactId>
    <version>${jaxb-core.version}</version>
  </dependency>
  <dependency>
    <groupId>com.sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>${jaxb-impl.version}</version>
  </dependency>
  <dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>${javax-activation.version}</version>
  </dependency>
  <dependency>
    <groupId>org.threeten</groupId>
    <artifactId>threetenbp</artifactId>
    <version>${threetenbp.version}</version>
  </dependency>

      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
            <Import-Package>!com.google.api.client.http,*</Import-Package>
            <Embed-Dependency>com.google.api.client.http</Embed-Dependency>
          </instructions>
        </configuration>
      </plugin>

所有实现都已部署和编译,但在运行karaf时,我得到了下一个错误。

日志空手道

2019-07-19 15:44:19,812,lixDispatchQueue,FeatureDeploymentListener,22 - org.apache.karaf.deployer.features - 3.0.3无法安装特性,java.lang.Exception:无法启动包mvn:com.xtpo.im/im-bll-impl/0.2-快照在特性中被-发票-mgmt-0.2-快照:包com.xtpo.im.im-impl 368中未解决的约束:无法解决368.0:缺少要求368.0 osgi.wiring.package;(osgi.wiring.package=com.google.api.client.http) at org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:504)21:org.apache.karaf.features.core:3.0.3 at org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:459)21:org.apache.karaf.features.core:3.0.3 at Proxya6f8789a_dbdc_4181_b0eb_837248e8cb78.installFeatures(Unknown Source)(在Proxycbafeabb_12c9_47e3_94d6_f999d20117fa.installFeatures(Unknown ) org.apache.karaf.deployer.features.FeatureDeploymentListener.bundleChanged(FeatureDeploymentListener.java:213)22:org.apache.karaf.deployer.features:3.0.3 at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1088)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:54)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:101)org.apache.felix.framework-4.2.1.jar: at java.lang.Thread.run(Thread.java:748):1.8.0_211由: org.osgi.framework.BundleException:包中未解决的约束引起,com.xtpo.im.im-bl-impl 368:无法解决368.0:缺少需求368.0 osgi.wiring.package;(osgi.wiring.package=com.google.api.client.http) at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)org.apache.felix.framework-4.2.1.jar: at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)org.apache.felix.framework-4.2.1.jar:在org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)org.apache.felix.framework-4.2.1.jar: at org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:501)21:org.apache.karaf.features.core:3.0.3

问题是com.google.api.client.http。有人能帮我解决这个问题吗?

在文件特性中,我有下一个依赖项:

features.xml

代码语言:javascript
复制
    <!--Xero dependencies-->
    <bundle>wrap:mvn:com.github.xeroapi/xero-java/${xero-java.version}</bundle>
    <bundle>wrap:mvn:com.github.xeroapi/xeroapi-schemas/${xero-schemas.version}</bundle>
    <bundle>wrap:mvn:javax.xml.bind/jaxb-api/${jaxb-api.version}</bundle>
    <bundle>wrap:mvn:com.sun.xml.bind/jaxb-impl/${jaxb-impl.version}</bundle>
    <bundle>wrap:mvn:javax.activation/activation/${javax-activation.version}</bundle>
    <bundle>wrap:mvn:org.threeten/threetenbp/${threetenbp.version}</bundle>

谢谢大家

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-21 11:38:26

Felix无法解析包com.google.api.client.http。您必须部署包含包的包,或者将其嵌入到您自己的包中。这个包可以从maven工件http-client:google-http-client中获得。

您可以将maven-bundle-plugin配置为嵌入编译作用域依赖项,并将依赖项添加到上面链接到的google构件中:

代码语言:javascript
复制
<dependency>
  <groupId>com.google.http-client</groupId>
  <artifactId>google-http-client</artifactId>
  <version>1.30.2</version>
</dependency>

可能需要对版本进行一些调整。请注意,这个工件被打包成一个OSGi包,所以您也可以尝试下载它,并将它与您自己的包一起部署到karaf中(而不是嵌入它)。

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

https://stackoverflow.com/questions/57127482

复制
相关文章

相似问题

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