Saxon XSLT 9.2 создает исключение NullPointerException для файла конфигурации в Eclipse STS - PullRequest
1 голос
/ 02 февраля 2012

Я использовал процессор Xalan XSLT в Eclipse STS 3.7, но недавно я перешел на Saxon 9.2 (Home Edition). В настройках Eclipse я переключил процессор и установил файл JAR на saxon9he.jar, но без отладчика. Когда я выполняю преобразование из Eclipse, я продолжаю получать это исключение. Похоже, что он жалуется на файл конфигурации edition.properties, но я проверил пакет Saxon, который я скачал с двоичными файлами jar, и такого файла нет. Я также скачал плагин Saxon Eclipse, чтобы посмотреть, является ли этот файл конфигурации частью плагина, но это не так.

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

java.lang.NullPointerException
    at net.sf.saxon.Configuration.<clinit>(Configuration.java:231)
    at net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:36)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:147)
    at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:187)
    at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:102)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.createTransformerFactory(JAXPSAXProcessorInvoker.java:92)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.setAttributes(JAXPSAXProcessorInvoker.java:79)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.configure(PipelineDefinition.java:143)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.Main.main(Main.java:72)
Exception in thread "main" java.lang.ExceptionInInitializerError
    at net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:36)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:102)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.createTransformerFactory(JAXPSAXProcessorInvoker.java:92)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.JAXPSAXProcessorInvoker.setAttributes(JAXPSAXProcessorInvoker.java:79)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.PipelineDefinition.configure(PipelineDefinition.java:143)
    at org.eclipse.wst.xsl.jaxp.debug.invoker.internal.Main.main(Main.java:72)
Caused by: java.lang.RuntimeException: Failed to load configuration defined in edition.properties
    at net.sf.saxon.Configuration.<clinit>(Configuration.java:277)
    ... 14 more
Caused by: java.lang.NullPointerException
    at net.sf.saxon.Configuration.<clinit>(Configuration.java:231)
    ... 14 more

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

В Saxon было несколько ошибок, связанных с невозможностью загрузки файла edition.properties в таких средах, как Eclipse и eXist, которые выполняют сильно настраиваемую загрузку классов.См. Здесь:

https://sourceforge.net/tracker/index.php?func=detail&aid=3043783&group_id=29872&atid=397617

и эту ветку обсуждения:

http://saxon.markmail.org/thread/wwljuixdww6fhd7w

Насколько мне известно, проблема была устранена длякогда-то.Если у вас есть веская причина для использования ветки 9.2, используйте последний выпуск поддержки для этой ветки, который является 9.2.1.5.В противном случае последний выпуск Saxon - это 9.4.0.2, а самый стабильный - 9.3.0.11.

И не стесняйтесь использовать список помощи Saxon (в Sourceforge), где вы всегда получите ответ от SaxonРазработчики.Спрашивая здесь, это случайность, видим ли мы сообщение или нет.

0 голосов
/ 02 февраля 2012

Мне удалось заставить это работать после воссоздания конфигурации синтаксического анализатора Saxon XSLT в Предпочтения и перезапуска Eclipse.Я полагаю, что «Затмение» держалось за какую-то старую конфигурацию, которая могла вызвать саксонскую инициализацию.Работает сейчас, иди разберись ..

...