今天在使用Java Service Wrapper 将Java做成window 服务时,启动正常,运行时却出现异常错误 java.io.InvalidClassException: failed to read class descriptor
自己捣鼓了许久。
后来查了下api InvalidClassException
api文档描述:
当 Serialization 运行时检测到某个类具有以下问题之一时,抛出此异常。
- 该类的序列版本号与从流中读取的类描述符的版本号不匹配
- 该类包含未知数据类型
- 该类没有可访问的无参数构造方法
本来在命令行上运行时是正常的,就是做成window服务之后出现异常。
后来发现是在wrapper.conf 中未加入程序依赖jar包,所以不能识别,正好是符合该类包含有未知数据类型。
# Java Classpath (include wrapper.jar) Add class path elements as
# needed starting from 1
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../lib/Wrasse-1.0.jar //加上此行解决问题