首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将撒克逊与web服务一起使用时的TransformerFactoryConfigurationError

尝试将撒克逊与web服务一起使用时的TransformerFactoryConfigurationError
EN

Stack Overflow用户
提问于 2013-04-18 04:19:20
回答 2查看 1.5K关注 0票数 2

我的web服务位于WSO2 WSAS应用服务器内的Axis2上,它包含以下代码:

代码语言:javascript
复制
String prop = "javax.xml.transform.TransformerFactory";
String val = "net.sf.saxon.TransformerFactoryImpl";

public static TransformerFactory getTransformerFactory() {
    System.setProperty(prop, val); // This line executes normally
    return TransformerFactory.newInstance(); // Error occurs inside this call
}

运行时,该服务会生成以下错误:

代码语言:javascript
复制
[2013-04-15 12:22:41,263] ERROR
  {org.apache.axis2.transport.base.threads.NativeWorkerPool} -  Uncaught
  exception
javax.xml.transform.TransformerFactoryConfigurationError: Provider
  net.sf.saxon.TransformerFactoryImpl not found
        at javax.xml.transform.TransformerFactory.newInstance(Unknown Source)
        at com.example.Setup.getTransformerFactory(Setup.java:40)
        at com.example.ProcessFiles.init(ProcessFiles.java:336)
        at com.example.TorgApp.incoming(TorgApp.java:229)
        ...

我的类路径中确实有Saxon-HE-9.4.jar,而且它是可读的。它也可用于Axis2 (/foo/bar/wso2as/wso2as-4.0.0/tmp/axis2-tmp-6436419317930731973.tmp/axis67573163200472779114Saxon-HE-9.4.jar)。

根据the Javadoc for newInstance()的说法,我正在设置的系统属性应该优先于识别要使用哪个TransformerFactory的所有其他方法,所以优先级不是问题。

是什么导致了这个错误,我该怎么做才能得到我想要的Saxon转换器工厂?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-18 04:34:11

如果axis2 (似乎是导致异常的原因)被放在web应用程序之外,那么您还必须使Saxon在那里也可用。

大多数应用程序服务器都有一个预定义的位置,可以将jar文件放在该位置以达到此目的。仅仅将其部署到您的web应用程序中是不够的。

票数 2
EN

Stack Overflow用户

发布于 2013-04-18 04:26:58

这似乎是一个类加载问题。您是否遵循了此文档。http://docs.wso2.org/wiki/display/AS510/Webapp+ClassLoading

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16069519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档