JSF 2.0 и TransformerFactory

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

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

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


person chardex    schedule 25.09.2010    source источник
comment
25 сентября 2010 г. 18:05:45 com.google.apphosting.utils.jetty.JettyLogger info ИНФОРМАЦИЯ: вход в JettyLogger (null) через com.google.apphosting.utils.jetty.JettyLogger 25 сентября 2010 г., 6:05: 45 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml ИНФОРМАЦИЯ: успешно обработано /home/chardex/projects/metabus/trunk/clients/export/target/articats/export_exploded/WEB-INF/appengine. , 18:05:45, 2010 г., 18:05:45 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml ИНФОРМАЦИЯ: успешно обработано / home / chardex / projects /abus / trunk / clients / export / target / articats / export_exploded / WEB-INF / web .xml 25 сентября 2010 г. 18:05:45 com.google.apphosting.utils.jetty.JettyLogger info ИНФОРМАЦИЯ: jetty-6.1.x 25 сентября 2010 г. 18:05:46 com.sun.faces.config.ConfigureListener contextInitialized INFO: Инициализация Mojarra 2.0.0 (RC2 b22) для контекста '' 25 сентября 2010 г., 18:05:48 com.sun.faces.config.ConfigManager initialize INFO: Unsanitized sta cktrace от неудачного запуска ... > com.sun.faces.config.ConfigurationException: java.util.concurrent.ExecutionException: java.lang.NoSuchMethodError: net.sf.saxon.dom.NodeWrapper $ ChildEnumeration.isAtomizing () Z на com.sun.faces.config.ConfigManager.getConfigDocuments (ConfigManager.java:670) на com.sun.faces.config.ConfigManager.initialize (ConfigManager.java:306) на com.sun.faces. config.ConfigureListener.contextInitialized (ConfigureListener.java:219) в org.mortbay.jetty.handler.ContextHandler.startContext (ContextHandler.java:548) в org.mortbay.jetty.servlet.Context.startContext (Context.java:136) в org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250) в org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517) в org.mortbay.jetty.webapp.WebStartContext.WebStartContext. (WebAppContext.java:467) на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на org.m или 130) на org.mortbay.jetty.Server.doStart (Server.java:224) на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) на com.google.appengine.tools.development.JettyContainerService.startContainer (JettyContainerService.java:185) по адресу com.google.appengine.tools.development. AbstractContainerService.startup (AbstractContainerService.java:147) в com.google.appengine.tools.development.DevAppServerImpl.start (DevAppServerImpl.java:219) в com.google.appengine.tools.development.DevAppServerMain $ DevAction.apply (DevAction. java: 164) на com.google.appengine.tools.util.Parser $ ParseResult.applyArgs (Parser.java:48) на com.google.appengine.tools.development.DevAppServerMain. (DevAppServerMain.java:113) на com. google.appengine.tools.development.DevAppServerMain.main (DevAppServerMain.java:89) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeImethod.java: DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:616) в 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 в java.util.concurrent.FutureTask $ Sync.innerGet (FutureTask.java:252) в java.util.concurrent.get (FutureTask.java:111) at com.sun.faces.config.ConfigManager.getConfigDocuments (ConfigManager.java:668) ... Еще 25 Причин: java.lang.NoSuchMethodError: net.sf.saxon.dom.NodeWrapper $ ChildEnumeration.isAtomizing () Z в net.sf.saxon.dom.NodeWrapper $ ChildEnumeration. (NodeWrapper.java:1079) в net.sf.saxon.dom.NodeWrapper.iterateAxis (NodeWrapper.java:722) в net.sf. saxon.instruct.ApplyTemplates.defaultAction (ApplyTemplates.java:375) в net.sf.saxon.instruct.ApplyTemplates.applyTemplates (ApplyTemplates.java:333) в net.sf.saxon.Controller.transformDocument (Controller.java:180) в net.sf.saxon.Controller.transform (Controller.java:1621) в com.sun.faces.config.ConfigManager $ ParseTask.getDocument (ConfigManager.java:906) в com .sun.faces.config.ConfigManager $ ParseTask.call (ConfigManager.java:831) в com.sun.faces.config.ConfigManager $ ParseTask.call (ConfigManager.java:787) в java.util.concurrent.FutureTask $ Sync .innerRun (FutureTask.java:334) в java.util.concurrent.FutureTask.run (FutureTask.java:166) в com.sun.faces.config.ConfigManager.getConfigDocuments (ConfigManager.java:656) ... еще 25 25 сентября 2010 г. 18:05:48 com.google.apphosting.utils.jetty.JettyLogger warnwarn   -  person chardex    schedule 25.09.2010


Ответы (1)


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

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

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

person BalusC    schedule 25.09.2010