如何解决错误!使用ant 1.10.8 Java 8和XSLT找不到类错误
我的旧代码在Ant 1.6和Java 1.4上运行,现在我要升级到Ant 1.10.8和Java8。它使用XSLT转换文件。 但是当我运行以升级版本部署应用程序时,部署失败,因为它无法加载classpath中存在的类。 下面是蚂蚁的目标
<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
解决方法
出于安全原因,在最新版本的Ant和JDK中,默认情况下禁用扩展功能的加载。请参见https://ant.apache.org/manual/Tasks/style.html部分“有关XSLT扩展功能的说明”。
,我能够找出问题所在,这是因为xslt中jar的路径是错误的,它正在使用旧版本,因为jar在ant lib目录中可用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。