неизвестное местоположение xjc — ошибка xsds в java с использованием JAXB XJC

#java #ant #jaxb #xjc

#java #ant #jaxb #xjc

Вопрос:

Я нахожусь в процессе преобразования нескольких xsd в java с помощью JAXB, я использую Jdeveloper версии 10.1.3.4 в качестве моей IDE. Версия JAXB 1.0, Xerces-J 2.6.2

Ниже приведена последовательность целей сборки и их выходных данных. Я также пытался использовать переключатель -nv, даже вышеупомянутый не сработал. Я новичок в JAXB.

Пожалуйста, найдите приведенный ниже журнал ant:

 [echo] Logging started build_2011-11-12.log
writelog:  duration 0 seconds

generation.jaxb.init:
    [mkdir] Created dir: C:UsersXXXYProjectsXXXInterfacegenerated
generation.jaxb.init:  duration 0 seconds

generate.jaxb:
      [xjc] build id of XJC is 1.0.2-b15-fcs
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdcreate_ship_to.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdcustom_ship.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdgeneric_notes.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdmeter_log.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdpart_need.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdpart_usage.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdplace.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdplace_type.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdrequest.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdrequest_contact.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdrequest_event.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdrequest_product.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdrequest_text.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdship_to.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdshipment.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdstock.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdtime_zone_code.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_generic_notes.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_meterlog.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_part_need.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_part_usage.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_place.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_request.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_request_contact.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_request_event.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_request_product.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_request_text.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_ship_to.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdupdate_type.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdwhos_place.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdwmetrix_install_info.xsd
      [xjc] Checking timestamp of C:UsersXXXYProjectsXXXInterfacexsdwmetrix_person.xsd
      [xjc] the last modified time of ths inputs is  1320964837275
      [xjc] the last modified time of the outputs is -9223372036854775808
      [xjc] Compiling file:/C:/Users/XXX/Projects/XXXY/Interface/xsd/create_ship_to.xsd and others
      [xjc] [INFO] Using Xerces from jar:file:/C:/Users/XXX/Installs/JDevStudio10.1.3.4/ant/lib/xercesImpl.jar!/org/apache/xerces/impl/Version.class
      [xjc] unknown location
      [xjc] 
generate.jaxb:  duration 0 seconds

BUILD FAILED

C:UsersXXXYProjectsXXXInterfacebuild.xml:60: java.lang.NullPointerException
    at org.apache.tools.ant.Task.perform(Task.java:373)
    at org.apache.tools.ant.Target.execute(Target.java:341)
    at org.apache.tools.ant.Target.performTasks(Target.java:369)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    at org.apache.tools.ant.Main.runBuild(Main.java:668)
    at org.apache.tools.ant.Main.startAnt(Main.java:187)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
Caused by: java.lang.NullPointerException
    at com.sun.xml.bind.unmarshaller.DOMScanner.buildNamespaceSupport(DOMScanner.java:121)
    at com.sun.xml.bind.unmarshaller.DOMScanner.parseWithContext(DOMScanner.java:91)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan(DOMForestScanner.java:57)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan(DOMForestScanner.java:65)
    at com.sun.tools.xjc.reader.internalizer.DOMForestParser.parse(DOMForestParser.java:67)
    at com.sun.tools.xjc.GrammarLoader$XMLSchemaForestParser.parse(GrammarLoader.java:230)
    at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.java:183)
    at com.sun.xml.xsom.impl.parser.XSOMParser.parse(XSOMParser.java:162)
    at com.sun.tools.xjc.GrammarLoader.loadXMLSchema(GrammarLoader.java:381)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:130)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:79)
    at com.sun.tools.xjc.XJCTask._doXJC(XJCTask.java:331)
    at com.sun.tools.xjc.XJCTask.doXJC(XJCTask.java:283)
    at com.sun.tools.xjc.XJCTask.execute(XJCTask.java:227)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    at org.apache.tools.ant.Task.perform(Task.java:364)
    ... 10 more
--- Nested Exception ---
java.lang.NullPointerException
    at com.sun.xml.bind.unmarshaller.DOMScanner.buildNamespaceSupport(DOMScanner.java:121)
    at com.sun.xml.bind.unmarshaller.DOMScanner.parseWithContext(DOMScanner.java:91)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan(DOMForestScanner.java:57)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan(DOMForestScanner.java:65)
    at com.sun.tools.xjc.reader.internalizer.DOMForestParser.parse(DOMForestParser.java:67)
    at com.sun.tools.xjc.GrammarLoader$XMLSchemaForestParser.parse(GrammarLoader.java:230)
    at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity(NGCCRuntimeEx.java:183)
    at com.sun.xml.xsom.impl.parser.XSOMParser.parse(XSOMParser.java:162)
    at com.sun.tools.xjc.GrammarLoader.loadXMLSchema(GrammarLoader.java:381)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:130)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:79)
    at com.sun.tools.xjc.XJCTask._doXJC(XJCTask.java:331)
    at com.sun.tools.xjc.XJCTask.doXJC(XJCTask.java:283)
    at com.sun.tools.xjc.XJCTask.execute(XJCTask.java:227)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    at org.apache.tools.ant.Task.perform(Task.java:364)
    at org.apache.tools.ant.Target.execute(Target.java:341)
    at org.apache.tools.ant.Target.performTasks(Target.java:369)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    at org.apache.tools.ant.Main.runBuild(Main.java:668)
    at org.apache.tools.ant.Main.startAnt(Main.java:187)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
  

Пожалуйста, помогите:

Комментарии:

1. JAXB 1.0 довольно старый, можете ли вы использовать JAXB 2 вместо него? Для этого требуется как минимум Java SE 5. Реализация включена в Java SE 6 и 7 (также доступны другие, такие как EclipseLink MOXy и Apache JaxMe).

2. Спасибо, Блейз, за ваш быстрый ответ. На самом деле обновление произойдет через некоторое время. К сожалению, мне пришлось поработать над незначительными изменениями в существующей инфраструктуре.

3. Блейз здесь — герцог преуменьшения. Если быть откровенным, вам нужно было бы приставить пистолет к голове, чтобы использовать JAXB 1.0 в 2011 году. JRE 6 поставляется со встроенным JAXB 2.1, JRE 7 поставляется с JAXB 2.2. Утилиты намного лучше (например, плагины maven), чем с JAXB 1.0, сгенерированный код намного понятнее, а зависимости от библиотек значительно сокращены, и вы действительно можете найти его в Интернете.