JBoss保险丝OSGi环境不工作

JBoss保险丝OSGi环境不工作,jboss,osgi,jbossfuse,hibernate-envers,blueprint-osgi,Jboss,Osgi,Jbossfuse,Hibernate Envers,Blueprint Osgi,我想使用hibernate envers审计来生成aud表,并将其部署到Jboss fuse OSGi Karaf容器中。 在实体类中添加@Audited符号,在我的pom文件中添加hibernate envers jar 这是我的pom.xml文件 <parent> <groupId>fuse-examples</groupId> <artifactId>fuse-spring-hibernate-module</artif

我想使用hibernate envers审计来生成aud表,并将其部署到Jboss fuse OSGi Karaf容器中。 在实体类中添加@Audited符号,在我的pom文件中添加hibernate envers jar

这是我的pom.xml文件

<parent>
    <groupId>fuse-examples</groupId>
    <artifactId>fuse-spring-hibernate-module</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>


<artifactId>fuse-blueprint-hibernate</artifactId>
<packaging>bundle</packaging>

<name>Business Service</name>

<properties>
    <camel-version>1.5.0</camel-version>
    <maven-bundle-plugin>2.4.0</maven-bundle-plugin>
    <javax.persistence>2.0.0</javax.persistence>
</properties>

<dependencies>
    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>${javax.persistence}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
    </dependency>
    <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-envers</artifactId>
     </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jpa_2.0_spec</artifactId>
        <version>1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jta_1.1_spec</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <defaultGoal>install</defaultGoal>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.4.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>business-service</Bundle-SymbolicName>
                    <Meta-Persistence>META-INF/persistence.xml</Meta-Persistence>
                    <Import-Package>
                        org.hibernate.envers,
                        javax.sql,
                        javax.persistence,
                        org.hibernate.proxy,
                        javassist.util.proxy,
                        org.slf4j
                    </Import-Package>
                    <Include-Resource>src/main/resources</Include-Resource>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

保险丝示例
保险丝弹簧休眠模块
1.0-快照
引信蓝图休眠
捆
商务服务
1.5.0
2.4.0
2.0.0
org.eclipse.persistence
javax.persistence
${javax.persistence}
org.hibernate
休眠实体管理器
org.hibernate
冬眠使者
org.apache.geronimo.specs
geronimo-jpa_2.0_规范
1.1
org.apache.geronimo.specs
geronimo-jta_1.1_规范
1.1.1
org.slf4j
slf4j api
1.7.5
假如
安装
org.apache.felix
maven捆绑插件
2.4.0
真的
商务服务
META-INF/persistence.xml
org.hibernate.envers,
javax.sql,
javax.persistence,
org.hibernate.proxy,
javassist.util.proxy,
org.slf4j
src/main/resources

如果我从pom.xml中删除org.hibernate.envers,则会创建表,但不会生成表。 我错过了什么设置? osgi容器或pom.xml中缺少任何设置? 或者任何要在blueprint xml中设置的内容


帮帮我。

在对基于JBoss Fuse-Karaf的OSGi容器进行了一些研究之后,我完成了任务。 实际上,在构建用于将其部署到OSGi容器的捆绑包时,我们应该设置一些设置。首先,我们应该知道OSGi容器加载的包是什么,以及嵌入到bundle中的包是什么。 Bundle清单文件将定义这一点。这是每个捆绑包的根设置。 在硬核框架中或依赖项可以嵌入到包中。 我的错误是我刚刚声明org.hibernate.envers使用hibernate envers

                 <Import-Package>
                    org.hibernate.envers,
                    javax.sql,
                    javax.persistence,
                    org.hibernate.proxy,
                    javassist.util.proxy,
                    org.slf4j
                </Import-Package>

org.hibernate.envers,
javax.sql,
javax.persistence,
org.hibernate.proxy,
javassist.util.proxy,
org.slf4j
大多数情况下,类加载问题可能会发生,如果发生这种情况,资源可能为空。 解决方案是我们应该导入envers导入的所有内容

在这里我粘贴了我的清单文件,它工作正常

Manifest-Version: 1.0
Bnd-LastModified: 1481971039345
Build-Jdk: 1.8.0_112
Built-By: Smile
Bundle-Activator: com.fuse.hibernate.services.OsgiBundleActiva
 tor
Bundle-Blueprint: OSGI-INF/blueprint/blueprint.xml
Bundle-ClassPath: .,hibernate-envers-4.2.22.Final-redhat-1.jar
Bundle-ManifestVersion: 2
Bundle-Name: FUSE-HIBERNATE
Bundle-SymbolicName: fuse-hibernate
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: <Exported Packages>
Export-Service: com.fuse.repository.CustomRepository
Import-Package: org.hibernate.annotations;version="[4.2,5)",org.hibernat
 e.annotations.common.reflection;version="[4.0,5)",javax.persistence;ver
 sion="[2.0,3)",org.hibernate.proxy;version="[4.2,5)",javassist.util.pro
 xy;version="[3.18,4)",org.slf4j;version="[1.7,2)",javax.management,java
 x.naming,javax.persistence.metamodel;version="[2.0,3)",javax.transactio
 n;version="[1.1,2)",org.apache.commons.beanutils;version="[1.8,2)",org.
 apache.commons.lang3;version="[3.0,4)",org.apache.tools.ant,org.dom4j,o
 rg.dom4j.io,org.dom4j.tree,org.hibernate;version="[4.2,5)",org.hibernat
 e.action.spi;version="[4.2,5)",org.hibernate.cache;version="[4.2,5)",or
 g.hibernate.cfg;version="[4.2,5)",org.hibernate.collection.spi;version=
 "[4.2,5)",org.hibernate.criterion;version="[4.2,5)",org.hibernate.diale
 ct;version="[4.2,5)",org.hibernate.engine.jdbc.spi;version="[4.2,5)",or
 g.hibernate.engine.loading.internal,org.hibernate.engine.spi;version="[
 4.2,5)",org.hibernate.engine.transaction.spi;version="[4.2,5)",org.hibe
 rnate.event.service.spi;version="[4.2,5)",org.hibernate.event.spi;versi
 on="[4.2,5)",org.hibernate.id;version="[4.2,5)",org.hibernate.id.enhanc
 ed;version="[4.2,5)",org.hibernate.integrator.spi;version="[4.2,5)",org
 .hibernate.internal,org.hibernate.internal.util;version="[4.2,5)",org.h
 ibernate.internal.util.collections,org.hibernate.internal.util.config,o
 rg.hibernate.internal.util.xml,org.hibernate.jdbc;version="[4.2,5)",org
 .hibernate.mapping;version="[4.2,5)",org.hibernate.metamodel.source;ver
 sion="[4.2,5)",org.hibernate.metamodel.spi;version="[4.2,5)",org.hibern
 ate.persister.collection;version="[4.2,5)",org.hibernate.persister.enti
 ty;version="[4.2,5)",org.hibernate.property;version="[4.2,5)",org.hiber
 nate.service;version="[4.2,5)",org.hibernate.service.classloading.spi;v
 ersion="[4.2,5)",org.hibernate.service.jdbc.dialect.internal,org.hibern
 ate.service.jndi;version="[4.2,5)",org.hibernate.service.spi;version="[
 4.2,5)",org.hibernate.sql;version="[4.2,5)",org.hibernate.tool.hbm2ddl;
 version="[4.2,5)",org.hibernate.type;version="[4.2,5)",org.hibernate.us
 ertype;version="[4.2,5)",org.jboss.logging;version="[3.1,4)",org.joda.t
 ime;version="[2.9,3)",org.osgi.framework;version="[1.6,2)",org.osgi.ser
 vice.blueprint;version="[1.0.0,2.0.0)",org.w3c.dom,javax.sql
Meta-Persistence: META-INF/persistence.xml
清单版本:1.0
Bnd LastModified:1481971039345
构建Jdk:1.8.0112
建造人:微笑
捆绑激活器:com.fuse.hibernate.services.OsgiBundleActiva
托尔
捆绑蓝图:OSGI-INF/Blueprint/Blueprint.xml
Bundle类路径:,hibernate-envers-4.2.22.Final-redhat-1.jar
软件包版本:2
捆绑包名称:FUSE-HIBERNATE
Bundle SymbolicName:fuse hibernate
捆绑包版本:1.0.0.0
创建人:ApacheMaven Bundle插件
出口包装:
导出服务:com.fuse.repository.CustomRepository
导入包:org.hibernate.annotations;version=“[4.2,5]”,org.hibernat
e、 annotations.common.reflection;version=“[4.0,5]”,javax.persistence;ver
sion=“[2.0,3]”,org.hibernate.proxy;version=“[4.2,5]”,javassist.util.pro
xy;version=“[3.18,4]”,org.slf4j;version=“[1.7,2]”,javax.management,java
x、 命名,javax.persistence.metamodel;version=“[2.0,3]”,javax.transactio
n、 version=“[1.1,2]”,org.apache.commons.beanutils;version=“[1.8,2]”,org。
apache.commons.lang3;version=“[3.0,4]”,org.apache.tools.ant,org.dom4j,o
org.dom4j.io,org.dom4j.tree,org.hibernate;version=“[4.2,5]”,org.hibernat
e、 action.spi;version=“[4.2,5]”,org.hibernate.cache;version=“[4.2,5]”,或
g、 hibernate.cfg;version=“[4.2,5]”,org.hibernate.collection.spi;version=
“[4.2,5]”,org.hibernate.criteria;version=“[4.2,5]”,org.hibernate.diale
ct;version=“[4.2,5]”,org.hibernate.engine.jdbc.spi;version=“[4.2,5]”,或
g、 hibernate.engine.loading.internal,org.hibernate.engine.spi;版本=”[
4.2,5)”,org.hibernate.engine.transaction.spi;version=“[4.2,5]”,org.hibe
rnate.event.service.spi;version=“[4.2,5]”,org.hibernate.event.spi;versi
on=“[4.2,5]”,org.hibernate.id;version=“[4.2,5]”,org.hibernate.id.enhanc
ed;version=“[4.2,5]”,org.hibernate.integrator.spi;version=“[4.2,5]”,org
.hibernate.internal,org.hibernate.internal.util;version=“[4.2,5]”,org.h
ibernate.internal.util.collections,org.hibernate.internal.util.config,o
rg.hibernate.internal.util.xml,org.hibernate.jdbc;version=“[4.2,5]”,org
.hibernate.mapping;version=“[4.2,5]”,org.hibernate.metamodel.source;ver
锡安=“[4.2,5]”,org.hibernate.metamodel.spi;版本=“[4.2,5]”,org.hibern
ate.persister.collection;version=“[4.2,5]”,org.hibernate.persister.enti
ty;version=“[4.2,5]”,org.hibernate.property;version=“[4.2,5]”,org.hiber
nate.service;version=“[4.2,5]”,org.hibernate.service.classloading.spi;v
version=“[4.2,5]”,org.hibernate.service.jdbc.dialen.internal,org.hibern
ate.service.jndi;version=“[4.2,5]”,org.hibernate.service.spi;version=”[
4.2,5)”,org.hibernate.sql;version=“[4.2,5]”,org.hibernate.tool.hbm2ddl;
version=“[4.2,5]”,org.hibernate.type;version=“[4.2,5]”,org.hibernate.us
ertype;version=“[4.2,5]”,org.jboss.logging;version=“[3.1,4]”,org.joda.t
ime;version=“[2.9,3]”,org.osgi.framework;version=“[1.6,2]”,org.osgi.ser
vice.blueprint;version=“[1.0.0,2.0.0]”,org.w3c.dom,javax.sql
元持久性:Meta-INF/Persistence.xml

我们可以使用Include-Resource标记将hibernate包含为资源,并确保将其添加到bundle类路径中。它应该可以工作。

在对基于JBoss-Fuse-Karaf的OSGi容器进行了一些研究之后,我完成了任务。 实际上,我们正在构建用于将其部署到OSGi容器的捆绑包,我们