XmlJavaTypeAdapter и изложить? - PullRequest
0 голосов
/ 01 июля 2011

Мне сложно запустить Enunciate в моем проекте. Проект представляет собой многомодульный проект Maven, доступный от https://svn.opentripplanner.org/trunk. Все, что я хочу из enunciate, это API документы. Ничего больше. Раньше мы работали через Мейвена и Хадсона, но это сломалось некоторое время назад, и человек, который его настраивал, недоступен. На самом деле, я бы предпочел сделать это через интерфейс командной строки, но если у кого-то есть решение Maven, я его приму.

Моя командная строка:

/home/novalis/otp/enunciate-1.23/bin/enunciate -v -f /home/novalis/otp/workspace/opentripplanner/opentripplanner-api-webapp/enunciate.xml `find /home/novalis/otp/workspace/opentripplanner/ -name *.java -type f |grep -v /test/`

Мой enunciate.xml выглядит так:

<enunciate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="http://enunciate.codehaus.org/schemas/enunciate-1.17.xsd"> 
  <services> 
    <rest> 
      <content-types> 
        <content-type type="text/plain" id="txt"/> 
      </content-types> 
    </rest> 
  </services> 
  <modules> 
    <c disabled="true"/> 
    <obj-c disabled="true"/> 
    <csharp disabled="true"/> 
    <jaxws-client disabled="true"/> 
    <docs title="OpenTripPlanner API"
          base="src/main/resources/docs-theme"/>
  </modules> 
</enunciate> 

И мой вывод:

initializing enunciate.
invoking enunciate:generate step...
error: Could not create declaration for annotation type Autowire
error: Could not create declaration for annotation type Component
error: Could not create declaration for annotation type Autowired
error: Could not create declaration for annotation type Required
4 errors
Exception in thread "main" org.codehaus.enunciate.contract.validation.ValidationException: /home/novalis/otp/workspace/opentripplanner/opentripplanner-routing/src/main/java/org/opentripplanner/routing/patch/StopNotePatch.java:58: stop: adapter org.opentripplanner.routing.patch.AgencyAndIdAdapter does not adapt AgencyAndId
    at org.codehaus.enunciate.contract.jaxb.adapters.AdapterUtil.findAdapterType(AdapterUtil.java:134)
    at org.codehaus.enunciate.contract.jaxb.adapters.AdapterUtil.findAdapterType(AdapterUtil.java:57)
[more traceback snipped]

AgencyAndIdAdapter выполняет адаптацию AgencyAndId. Фактический код прекрасно работает, когда я его запускаю. Я попытался создать крошечный тестовый пример с XmlAdapter, адаптирующий случайный Java-класс (JPanel), и он отлично работает. Поэтому я не могу понять, как уменьшить проблему дальше.

Я не думаю, что ошибки в Autowire / Component / etc вызывают это, потому что, если я исключу все файлы, содержащие эти аннотации (| xargs grep -L 'Autowire | Component | Request' непосредственно перед закрывающим обратным трюком), Я все еще получаю остаток ошибки. Тем не менее, было бы хорошо, чтобы исправить это тоже.

1 Ответ

1 голос
/ 09 июля 2011

Смотрите патч, прикрепленный к:

http://codehaus.markmail.org/thread/xuyzbe7aigitj5vj

...