2010-09-25 2 views
2

Я собираюсь использовать Saxon-B 9 в своем проекте JSF 2.0. Но после добавления зависимости в Saxon & исключение Saxon-РОМ стало появляться при запуске:JSF 2.0 и TransformerFactory

Sep 25, 2010 6:05:45 PM com.google.apphosting.utils.jetty.JettyLogger info INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger Sep 25, 2010 6:05:45 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml INFO: Successfully processed /home/chardex/projects/metabus/trunk/clients/export/target/articats/export_exploded/WEB-INF/appengine-web.xml Sep 25, 2010 6:05:45 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml INFO: Successfully processed /home/chardex/projects/metabus/trunk/clients/export/target/articats/export_exploded/WEB-INF/web.xml Sep 25, 2010 6:05:45 PM com.google.apphosting.utils.jetty.JettyLogger info INFO: jetty-6.1.x Sep 25, 2010 6:05:46 PM com.sun.faces.config.ConfigureListener contextInitialized INFO: Initializing Mojarra 2.0.0 (RC2 b22) for context '' Sep 25, 2010 6:05:48 PM com.sun.faces.config.ConfigManager initialize INFO: Unsanitized stacktrace from failed start... > com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: net.sf.saxon.dom.NodeWrapper$ChildEnumeration.isAtomizing()Z at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:670) at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:306) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:219) at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:185) at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:147) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:219) at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164) at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) at com.google.appengine.tools.development.DevAppServerMain.(DevAppServerMain.java:113) at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) Caused by: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: net.sf.saxon.dom.NodeWrapper$ChildEnumeration.isAtomizing()Z at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:668) ... 25 more Caused by: java.lang.NoSuchMethodError: net.sf.saxon.dom.NodeWrapper$ChildEnumeration.isAtomizing()Z at net.sf.saxon.dom.NodeWrapper$ChildEnumeration.(NodeWrapper.java:1079) at net.sf.saxon.dom.NodeWrapper.iterateAxis(NodeWrapper.java:722) at net.sf.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates.java:375) at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:333) at net.sf.saxon.Controller.transformDocument(Controller.java:1807) at net.sf.saxon.Controller.transform(Controller.java:1621) at com.sun.faces.config.ConfigManager$ParseTask.getDocument(ConfigManager.java:906) at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:831) at com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:787) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at com.sun.faces.config.ConfigManager.getConfigDocuments(ConfigManager.java:656) ... 25 more Sep 25, 2010 6:05:48 PM com.google.apphosting.utils.jetty.JettyLogger warnwarn

Но я до сих пор не использовать библиотеку и не понимаю, почему JSF начинает использовать его. Я попытался удалить файл javax.xml.transform.TransformerFactory из saxon jar, но это не помогло.

+0

Он исправляется, если начать с параметра -Djavax.xml.transform.TransformerFactory = "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl". Но как установить файлы конфигурации или в Google App Engine? – chardex

ответ

2

Saxon уже был в пути к классам, но вы, видимо, добавили устаревшую версию в путь класса, в котором отсутствует метод, упомянутый в сообщении NoSuchMethodError.

Вероятно, Саксон уже был среди стандартных библиотек в пути к классам. Саксон является одной из реализаций JAXP. JSF использует JAXP для анализа среди других файлов faces-config.xml.

Чтобы устранить эту проблему, просто удалите устаревшую версию Saxon из пути к классам, который вы добавили вручную в путь к классам, и она должна работать.