javax.management.MalformedObjectException。无效字符';:';财产的价值部分

javax.management.MalformedObjectException。无效字符';:';财产的价值部分,java,tomcat,ant,zk,Java,Tomcat,Ant,Zk,使用ant构建的web应用程序的War文件在Windows机器上的Tomcat(版本8.0.18)上运行良好。但是,如果我在安装在Linux机器上的Tomcat(相同版本)上部署相同的war,它会抛出错误: javax.management.MalformedObjectException。属性的值部分中的无效字符“:”。我做了一些主要的检查,比如清理Tomcat工作文件夹,检查重复的jar等等,但是没有运气。听起来你的代码中有一个硬编码的windows路径,比如“c:\”——因为linux路径

使用ant构建的web应用程序的War文件在Windows机器上的Tomcat(版本8.0.18)上运行良好。但是,如果我在安装在Linux机器上的Tomcat(相同版本)上部署相同的war,它会抛出错误:
javax.management.MalformedObjectException。属性的值部分中的无效字符“:”。我做了一些主要的检查,比如清理Tomcat工作文件夹,检查重复的jar等等,但是没有运气。

听起来你的代码中有一个硬编码的windows路径,比如“c:\”——因为linux路径中不允许有冒号“:”


尝试仅在代码中使用相对路径。

已选中,但像“C:\”这样的硬编码路径在属性文件中有注释。还通过从属性文件中完全删除该路径进行了一轮测试。但同样的错误。好的,是否还有另一个属性值包含冒号?嗯,也可能是属性文件的字符集问题。同时在服务器日志中,我观察到“org.apache.catalina.LifeCycleException:无法启动组件。”异常。这是因为我的war由于之前的错误而没有上传。令人惊讶的是,当我将war文件直接放在Tomcat的webapp文件夹中部署到linux上时;构建成功。应用程序运行良好。问题只在于Tomcat'manager/html'war上传方法。今天我通过在linux机器上使用Jenkins(ant buidl)进行部署进行了检查,完全没有问题。