令人痛苦万分的CLASSPATH

被一个jersey的UnrecognizedPropertyException所困扰,痛苦的地方在于自定义的restful API在其他应用调用是没有问题的,而在我的应用中调用则抛异常。把互联网上的相关异常的文章都翻了一遍,似乎都不对症;然后在自定义的restful API中打印debug信息,找不到蛛丝马迹,可以肯定服务器端的资源获取代码是没有问题的,因为可以通过http访问,从debug信息也是能accept出所有的json文本,可是就是在WebResource的get函数反射业务数据类型时提示某个字段不认识。。。。。。,但是字段全部是存在的而且都加了annotation,无语。。。。。。
我是通过JNI调用的,我决定写一个小的java code的单元测试,避开JNI,结果单元测试报同样的异常。。。。。。无语,没有办法,我都是在命令行执行,我决定用eclipse调试一下java单元测试,建了一个eclipse工程,将所有的jar包都引用上,运行,异常的事情发生了------异常没有抛出,调用结果正确。同样的代码,命令行和eclipse工程的区别是什么呢?现在怀疑可能是CLASSPATH的问题了,因为我的CLASSPATH内容巨大,我将CLASSPATH腰斩了一下再export,发现java单元测试在命令行也通过了。虫子的尾巴露出来了,最后分析发现,CLASSPATH包含了多个版本的jersey,将低版本的jersey和jackson的jar包去除后,问题解决!

猜你喜欢

转载自johnsmith9th.iteye.com/blog/1962411