首页 > 解决方案 > 错误!ant 1.10.8 Java 8 和 XSLT 找不到类错误

问题描述

我在 Ant 1.6 和 Java 1.4 上运行旧代码,现在我正在升级到 Ant 1.10.8 和 Java 8。它使用 XSLT 来转换文件。但是当我使用升级版本运行部署应用程序时,部署失败,因为它无法加载类路径中存在的类。下面是蚂蚁目标

<target name="generate">
<property file="/etc/adminkey"/>
<xslt processor="trax" force="true" in="prop.xml" style="xslt/prop.xslt" out="logger.properties">
  <param name="envname" expression="${env.ENV_NAME}"/>
  <param name="packagename" expression="logger"/>
  <param name="rootdir"   expression="${env.ROOT_DIR}"/>
  <classpath>
    <pathelement location="/bin/util.jar"/>
  </classpath>
</xslt>
</target>

和 prop.xslt 我正在使用来自 util.jar 的类

我怀疑不知何故类路径被忽略了。但不知道为什么。

下面是堆栈跟踪。

generate:
INFO -      [echo] Generating logger.properties file...
INFO -      [xslt] Processing prop.xml to logger.properties
INFO -      [xslt] Loading stylesheet xslt/prop.xslt
INFO -      [xslt] : Error! Cannot find class 'com.group.tools.util.Encrypter'.
INFO -      [xslt] : Error! Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
INFO -      [xslt] : Fatal Error! Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
INFO -      [xslt] Failed to process prop.xml
ERROR - 
ERROR - BUILD FAILED
ERROR - prop.xml:10: Fatal error during transformation using xslt/props.xslt: Cannot find external method 'com.group.tools.util.Encrypter.decryptwithkey' (must be public).
ERROR - 
ERROR - Total time: 2 seconds

标签: javaxmlxsltant

解决方案


我能够找出问题所在,这是因为 xslt 中 jar 的路径错误,它正在使用旧版本,因为 jar 在 ant lib 目录中可用。


推荐阅读