我正在使用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)
在这方面的任何帮助将不胜感激。
答案 0 :(得分:0)
我为我的案子找到了解决方案。
对于vertx项目,项目中将有mod.json文件。它应该有以下json。
{
"main": "com.company.agent.Manager",
"preserve-cwd": true
}
"preserve-cwd": true
可以提供帮助。