gpt4 book ai didi

Java TransformerFactory.newTransformer 出现不可预测的错误

转载 作者:行者123 更新时间:2023-12-01 14:48:33 25 4
gpt4 key购买 nike

我面临着一个非常烦人的问题,导致服务器 Java 进程终止,从这段代码中踢出(精简):

_sesXslProc = new ArrayList<Transformer>();
TransformerFactory tFactory = TransformerFactory.newInstance();
for( String it : lesFichiers )
{
try
{
_sesXslProc.add( tFactory.newTransformer( new StreamSource( it ) ) ); // breaks there
}
catch( Exception ex )
{
...
}
}

此代码由 cron 在服务器上运行,可以同时运行许多这样的进程(最多 5 个),并且 ex.getMessage 显示:

javax.xml.transform.TransformerConfigurationException: Chargement impossible de la classe translet 'cdt17totifv3'

EN : Unable to load Translet class 'cdt17totifv3'

因此,我坚持这一点,并且手动启动进程很好(通常很少失败)。

有人知道什么会导致 XSL 转换初始化失败吗?

最佳答案

在我看来,这就像多个不同的线程或进程试图同时使用相同的资源并相互干扰的问题。也许他们正在根据当前时钟时间生成一个临时文件名,因此有时多个进程会选择相同的名称。

如果同时运行多个操作系统级进程,请尝试为每个进程的 java.io.tmpdir 系统属性指定不同的值,以使它们使用不同的临时目录。如果它是同一个 java 进程中的多个线程,那么我不知道除了将 newTransformer 调用包装在 synchronized block 中之外是否还有更多选择。

关于Java TransformerFactory.newTransformer 出现不可预测的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com