java.lang.NoSuchMethodError: xjavadoc.XJavaDoc.setDocEncoding(Ljava/lang/String;)V
昨晚开始了痛苦的历程。
一向工作得好好的xdoclet,自从我将核心包更新为1.2.2后,噩梦开始了。每次运行hibernatedoclet, 都会出现以下错误:
java.lang.NoSuchMethodError: xjavadoc.XJavaDoc.setDocEncoding(Ljava/lang/String;
)V
at xdoclet.XmlSubTask.startProcess(XmlSubTask.java:184)
at xdoclet.modules.hibernate.HibernateSubTask.execute(HibernateSubTask.j
ava:123)
at xdoclet.XDocletMain.start(XDocletMain.java:48)
at xdoclet.DocletTask.start(DocletTask.java:468)
at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:96)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
at org.apache.tools.ant.Main.runBuild(Main.java:673)
at org.apache.tools.ant.Main.startAnt(Main.java:188)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
无法生成hibernate配置文件
没有源码,反编译找到XmlSubTask,没发现什么问题;找到xjavadoc相关的类,setDocEncoding赫然存在。
Google了一下,只有两条纪录,也没有解决,只是说注意版本。我试着将所有xdoclet jar文件换成1.2b4, 再次ant…居然成功了!郁闷,然后依次将hibernate, web相关的jar更新为1.2.2,没问题;就在更新xdoclet.jar之后,出现了上面提到的那个错误。
问题很明显了,是最新版本的问题。具体原因不祥。还是老老实实用旧版本吧。