Сборка FHIR завершается ошибкой NoSuchMethodError: net.sf.saxon.Configuration.newConfiguration ()

Следуя инструкциям на странице http://wiki.hl7.org/index.php?title=FHIR_Build_Process Моя сборка FHIR не работает. Я изменил publish.bat, чтобы убедиться, что он использует правильный JDK. Запуск его на 64-разрядной машине Windows 7 с JDK 1.6 (также пробовал JDK 1.7), и оба отказались с той же ошибкой.

Похоже, где-то в аду какой-то саксонский JAR. Любые идеи?

 ...validate v2-tables                                                     441sec  755MB
 ...validate v3-codesystems                                                443sec  889MB
Reference Platform Validation.                                             447sec 1067MB
 ...test adversereaction-example                                           447sec 1067MB
Exception in thread "main" java.lang.NoSuchMethodError: net.sf.saxon.Configuration.newConfiguration()Lnet/sf/saxon/Configuration
;
        at net.sf.saxon.xpath.XPathFactoryImpl.<init>(XPathFactoryImpl.java:33)
        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.xpath.XPathFactoryFinder.loadFromService(XPathFactoryFinder.java:401)
        at javax.xml.xpath.XPathFactoryFinder._newFactory(XPathFactoryFinder.java:222)
        at javax.xml.xpath.XPathFactoryFinder.newFactory(XPathFactoryFinder.java:143)
        at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:185)
        at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:99)
        at org.hl7.fhir.tools.publisher.Publisher.testSearchParameters(Publisher.java:2796)
        at org.hl7.fhir.tools.publisher.Publisher.testSearchParameters(Publisher.java:2785)
        at org.hl7.fhir.tools.publisher.Publisher.validateRoundTrip(Publisher.java:2759)
        at org.hl7.fhir.tools.publisher.Publisher.validateXml(Publisher.java:2656)
        at org.hl7.fhir.tools.publisher.Publisher.execute(Publisher.java:378)
        at org.hl7.fhir.tools.publisher.Publisher.main(Publisher.java:281)

person Matt Potter    schedule 21.11.2013    source источник
comment
Да, САКСОНСКАЯ баночка, черт возьми. Все еще пытаюсь разобраться. Не знаю, что ненавижу больше. Джава. или саксонский. :-(   -  person Grahame Grieve    schedule 21.11.2013
comment
Лол, я отлично смог запустить его из Eclipse. Я заметил, что когда я загружал проекты, ссылка saxon9he.jar в проекте Eclispe была абсолютным путем к c: \ work \ ..., в то время как все остальные брали из .. \ import. Итак, я настроил это и запустил изнутри в Eclipse, и он завершился. Я попробую собрать контейнер для инструментов в соответствии с инструкциями и посмотрю, работает ли это сейчас.   -  person Matt Potter    schedule 21.11.2013
comment
Хммм, восстановление jar инструмента издателя из исходного кода решило мою проблему построения из командной строки. Возможно, что-то не так в той банке, которую я тогда снял с SVN.   -  person Matt Potter    schedule 21.11.2013
comment
Ну какая разница?   -  person Grahame Grieve    schedule 21.11.2013


Ответы (2)


Обходной путь ... создайте новую сборку jar-файла инструмента издателя из исходного кода.

Следуя инструкциям в build / buildhowto.txt, я смог создать банку инструментов внутри Eclipse, успешно запустить Publisher из Eclipse и затем экспортировать ее как новую банку инструментов, перезаписав ту, которую я извлек из SVN. Только что созданный затем завершился из командной строки.

Возможно, в данный момент есть проблема только с версией инструментов, которая есть в SVN.

Для записи я работаю с версией 0.12-1953.

person Matt Potter    schedule 21.11.2013

У вас есть два класса net.sf.saxon.Configuration в вашем пути к классам. Один содержит метод newConfiguration (), а другой нет.

Метод, вероятно, вызывается из Saxon-HE 9.x, а класс net.sf.saxon.Configuration находится в saxon 8.x, тогда как класс должен был быть найден внутри Saxon-HE 9.x, где он также находится , и у него есть этот метод.

Итак, проверьте свои зависимости, чтобы узнать, вызывается ли saxon 8.x, и попробуйте заменить его на Saxon-HE 9.x, тогда ваша проблема будет решена.

person Bert Verhees    schedule 21.05.2014