Karaf自定义附加程序以错误开始:java.lang.NoClassDefFoundError:javax/crypt



我有一个自定义的log4j自定义appender,它在我的测试环境中工作,比如:
C: \Log4jTest>java-cp。Log4jTest

但在将其配置为Karaf时,在启动时总是会出现错误:org.apache.filex.configadmin-1.2.8|[org.osgi.service.log.LogService,org.knoplerfish.service.logLogService,.org.ops4j.pax.logging.PaxLoggingService,org.osgi-service.cm.ManagedService,id=8,bundle=4]:更新配置PID=org.os4j.pax.logging,factoryPID=null,bundleLocation=mvn:org.ops4j.pax.logging/pax logging service/1.6.9时出现意外问题java.lang.NoClassDefFoundError:javax/crypto/SecretKey网址:com.microsoft.azure.storage.Credentials。(Credentials.java:63)网址:com.microsoft.azure.storage.StorageCredentialsAccountAndKey。(StorageCredentialsAccountAndKey.java:42)……
我的MVP POM。XML非常简单:

[<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hcit.logger</groupId>
  <artifactId>cloud-logger-service</artifactId>
  <version>1.0.0</version>
  <packaging>bundle</packaging>
  <dependencies>
    <dependency>
      <groupId>org.ops4j.pax.logging</groupId>
      <artifactId>pax-logging-service</artifactId>
      <version>1.6.9</version>
    </dependency>
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-storage</artifactId>
            <version>1.1.0</version>
        </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.7</version>
        <extensions>true</extensions>   
        <configuration>
          <instructions>
            <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>com.hcit.logger</Export-Package>
            <Import-Package>!*</Import-Package>
            <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
            <_failok>true</_failok>
            <Fragment-Host>org.ops4j.pax.logging.pax-logging-service</Fragment-Host>
            <Implementation-Version>${project.version}</Implementation-Version>
            <Bundle-Version>${project.version}</Bundle-Version>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
]

以及我的org.ops4j.pax.logging.cfg的片段:
……
log4j.appender.hafauditCloudLoggerAppender=com.hcit.logger.CloudLoggerAppender
log4j.appender.hafauditCloudLoggerAppender.Threshold=DEBUG
log4j.appender.hafauditCloudLoggerAppender.TableName=记录器表
log4j.category.com.gehcit.haf.audit.sumer=调试,hafauditCloudLoggerAppender……

我检查了我的jre.properties是否有javax.crypto:
……
javax.crypto,\
javax.crypto.interfaces,\
javax.crypto.spec,\
……

我是卡拉夫的新手,想知道如何解决这个问题?我的JDK是jdk1.7.0_72,谢谢。

最后我发现了一些技巧,如果通过添加以下组件来更改config.properties:
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,sun.,com.sun.,javax.transaction,javax.transaction.<em],javax.sql.>,com.microsoft.sqlserver.TR

它有效。当然,在POM.xml中应该添加fasterxml:
的依赖项

   [<dependency>
       <groupId>de.matrixweb.smaller</groupId>
       <artifactId>ant</artifactId>
       <version>0.8.4</version>
    </dependency>]

最新更新