java.lang.IllegalArgumentException - 'other'具有不同的根

时间:2015-04-13 12:09:58

标签: java eclipse illegalargumentexception vert.x

我正在使用Vertx编写一个java应用程序。我正在尝试使用以下代码部署我的一个模块。但我面临IllegalArgumentException,我无法解决。

我的主要课程的一部分:

System.out.println(System.getProperty("user.dir")
                + File.separator + "modules" + File.separator
                + "agents-0.0.1-SNAPSHOT-mod.zip");
        InputStream agf = new FileInputStream(System.getProperty("user.dir")
                + File.separator + "conf" + File.separator
                + "dbproperties1.json");
            String json = IOUtils.toString( agf );
            LOGGER.debug("db json:::"+json);
        JsonObject configprop =  new JsonObject(json);
        pm.deployModuleFromZip(System.getProperty("user.dir")
                + File.separator + "modules" + File.separator
                + "agents-0.0.1-SNAPSHOT-mod.zip", configprop, 1,
                new AsyncResultHandler<String>() {
                    public void handle(AsyncResult<String> asyncResult) {
                        LOGGER.debug("Deployment agnet ID dddd");
                        if (asyncResult.succeeded()) {
                            LOGGER.debug("Deployment agnet ID is "
                                    + asyncResult.result());
                        } else {
                            LOGGER.debug("Deployment agnet  ID is null "
                                    + asyncResult.result());
                            asyncResult.cause().printStackTrace();
                        }
                    }
                }); 
        agf.close();

控制台中的错误如下:

java.lang.IllegalArgumentException: 'other' has different root
    at sun.nio.fs.WindowsPath.relativize(WindowsPath.java:392)
    at sun.nio.fs.WindowsPath.relativize(WindowsPath.java:44)
    at org.vertx.java.platform.impl.DefaultPlatformManager.setPathResolver(DefaultPlatformManager.java:1128)
    at org.vertx.java.platform.impl.DefaultPlatformManager.access$2000(DefaultPlatformManager.java:55)
    at org.vertx.java.platform.impl.DefaultPlatformManager$18.run(DefaultPlatformManager.java:1276)
    at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:171)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:353)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:366)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
    at java.lang.Thread.run(Thread.java:745)

在这方面的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我为我的案子找到了解决方案。

对于vertx项目,项目中将有mod.json文件。它应该有以下json。

{
  "main": "com.company.agent.Manager",
  "preserve-cwd": true
}

"preserve-cwd": true可以提供帮助。