2016-12-15 1 views
0

높은 테이블을 생성하고 Jboss 퓨즈 OSGi Karaf 컨테이너에 배포하기 위해 최대 절전 모드를 사용하고 싶습니다. 엔티티 클래스에 @Audited 표기법을 추가하고 pom 파일에서 최대 절전 모드로 jar 파일을 열 수 있습니다.JBoss Fuse OSGi가 작동하지 않습니다.

여기

<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> 

는 난의 pom.xml에서 org.hibernate.envers를 분리 한 경우, 내 pom.xml 파일이며, 테이블이 만들어졌지만 _aud 테이블이 생성되지있어. 내가 놓친 설정은 무엇입니까? osgi 컨테이너 또는 pom.xml에서 설정이 누락 되었습니까? 아니면 청사진 xml에서 설정하고 싶습니까?

도와주세요.

+0

당신은 당신이 당신이 할 때 당신의 문제에 대한 언급을하지 않고 Hibernate-envers 라이브러리를 추가했다고 언급했다. 분명히, 게시물이 말한대로 그것을 포함시키지 않으면 감사 테이블이 생성되지 않습니다. 당신이 당신의 포움의 일부 였을 때 당신이 직면 한 문제를 설명 할 수 있습니까? – Naros

+0

나는 부모 POM 파일에서 최대 절전 모드 - 4.2.22.Final-redhat-1 버전을 사용하고있다. – Sridhar

+0

제 질문은 내 번들에서 최대 절전 모드를 사용하는 방법과 이것을 osgi karaf 컨테이너에 배포하는 방법입니다. – Sridhar

답변

2

JBoss Fuse Karaf 기반 OSGi 컨테이너에 대해 조사한 끝에 필자는 작업을 완료했습니다. 실제로 OSGi 컨테이너에 배치하기 위해 번들을 빌드하기 때문에 몇 가지 설정을 지정해야합니다. 우선 우리는 OSGi 컨테이너에 의해 패키지가로드되는지, 그리고 번들에 포함되어 패키지가 무엇인지 말해야합니다. 번들 매니페스트 파일에서이를 정의합니다. 이것이 모든 번들의 루트 설정입니다. 하드 코어에서 프레임 워크 또는 종속성이 번들 내에 포함될 수 있습니다. 내 실수는 그냥 최대 절전 모드 사용에 대한 org.hibernate.envers 선언했다.

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

대부분의 경우 클래스로드 문제가 발생할 수 있습니다. 리소스가 null 일 수 있습니다. 해결책은 모든 수입품을 수입해야한다는 것입니다.

여기 내 매니페스트 파일을 붙여 넣었으므로 잘 동작합니다.

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 

우리는 자원으로 최대 절전 모드 등을 위해 포함-자원 태그를 사용하여 번들 클래스 경로에이를 추가해야 할 수 있습니다. 그것은 작동해야합니다.

관련 문제