0

我已经通过 Spring IDE 启用了 overthereconnection,但是当我尝试通过命令行运行我的 maven 构建的应用程序时,我收到了这个错误:

Exception in thread "main" java.util.ServiceConfigurationError: jar (Unknown file system scheme! May be the class path doesn't contain the respective driver module or it isn't set up correctly?)
        at de.schlichtherle.truezip.fs.FsAbstractCompositeDriver.newController(FsAbstractCompositeDriver.java:33)
        at de.schlichtherle.truezip.fs.FsDefaultManager.getController0(FsDefaultManager.java:95)
        at de.schlichtherle.truezip.fs.FsDefaultManager.getController(FsDefaultManager.java:78)
        at de.schlichtherle.truezip.file.TFile.getController(TFile.java:1497)
        at de.schlichtherle.truezip.file.TFile.parse(TFile.java:687)
        at de.schlichtherle.truezip.file.TFile.<init>(TFile.java:659)
        at de.schlichtherle.truezip.file.TFile.<init>(TFile.java:601)
        at nl.javadude.scannit.reader.TFiles.tFile(TFiles.java:23)
        at nl.javadude.scannit.reader.ArchiveEntrySupplier.withArchiveEntries(ArchiveEntrySupplier.java:23)
        at nl.javadude.scannit.Worker.scanFiles(Worker.java:59)
        at nl.javadude.scannit.Worker.scanURI(Worker.java:53)
        at nl.javadude.scannit.Worker.scan(Worker.java:46)
        at nl.javadude.scannit.Scannit.<init>(Scannit.java:41)
        at com.xebialabs.overthere.Overthere.boot(Overthere.java:74)
        at com.xebialabs.overthere.Overthere.<clinit>(Overthere.java:69)
        at com.emc.ondemand.agent.core.discovery.AnalyzeSelf.constructODEnvironmentForSingleHost(AnalyzeSelf.java:172)
        at com.emc.ondemand.agent.core.discovery.DiscoverEnvironment.discoverEnvironment(DiscoverEnvironment.java:85)
        at com.emc.ondemand.agent.core.discovery.DiscoverEnvironment.main(DiscoverEnvironment.java:48)

我的代码调用如下所示:

    // establish winrm connection to target host
    ConnectionOptions options = new ConnectionOptions(); 
    options.set(ADDRESS, myHost.getIP()); 
    options.set(USERNAME, user); 
    options.set(PASSWORD, pass); 
    options.set(OPERATING_SYSTEM, WINDOWS); 
    options.set(CONNECTION_TYPE, WINRM_NATIVE); // was not able to get WINRM_INTERNAL to work with processes
    connection = Overthere.getConnection("cifs", options);

这是我唯一的依赖:

    <dependency>
        <groupId>com.xebialabs.overthere</groupId>
        <artifactId>overthere</artifactId>
        <version>4.2.1</version>
    </dependency>

它确实引入了正确的 Truezip 类,所以我不知道它的确切含义。

4

1 回答 1

1

我猜你的依赖是一个超级JAR?META-INF/services/de.schlichtherle.truezip.fs.spi.FsDriverService请检查类路径上是否有文件。其中,它需要包含以下条目:

de.schlichtherle.truezip.fs.archive.zip.ZipDriverService

如果不是这种情况,请联系overthere工件的创建者,并告诉他们他们似乎从 TrueZIP 依赖​​项中错误地组装了工件。

在所有情况下,您都应该能够通过向您的类路径添加另一个依赖项来解决此问题:

<dependency>
  <groupId>de.schlichtherle.truezip</groupId>
  <artifactId>truezip-driver-zip</artifactId>
  <version>7.7.9</version>
</dependency>
于 2016-02-24T09:40:49.073 回答