Проблемы со ссылками на сгенерированные классы WSDL2Java - PullRequest
1 голос
/ 20 марта 2012

У меня проблема со ссылками и использованием классов, сгенерированных WSDL2Java (для справки ниже приведен следующий вопрос: Ошибки нехватки памяти в Java на больших WSDL (инфраструктура воспроизведения) ). В зависимости от того, как я пытаюсь ссылаться на файлы, которые он генерирует, я получаю разные ошибки при запуске. (Примечание: я просто получаю эти ошибки во время выполнения)

Итак, я запускаю свой WSDL2Java (с опцией XMLBeans), а затем использую его для сборки. После того, как я сгенерировал и собрал мои классы, я получил 3 стандартные папки и файл сборки:

  • сборка
  • ресурсы
  • 1012 * ЦСИ *
  • build.xml

Это содержит все хорошие вещи. Затем в рамках моего проекта в Eclipse я создал папку с именем dynamic и добавил в нее три вышеуказанные папки. Чтобы использовать классы (без ошибок компиляции), я могу просто добавить dynamic / build / classes в мой buildpath / classpath. Примечание: в eclipse кажется немного неуклюжим найти правильный способ добавить что-то в путь к классам ... Сначала я попытался это сделать так:

Project -> Properties -> Libraries -> Add Class Folder

Другой способ был использован:

Run -> Run Configurations -> Classpath

Ни один из способов, кажется, не имеет значения. Но в любом случае я могу использовать свой WSDL-код, и все выглядит хорошо. Но когда я пытаюсь запустить его, у меня возникают проблемы. Выполняя приведенную выше ссылку, я получаю следующую ошибку при обращении к веб-сервису в моем веб-приложении:

The file /app/controllers/Application.java could not be compiled. Error rasied is : com.microsoft.schemas.xrm._2011.contracts.Entity cannot be resolved

Итак, чтобы обойти это, я попробовал еще одну вещь - добавить весь сгенерированный источник в исходную папку моих проектов. В основном возьмите ВСЕ сгенерированные WSDL файлы .java в dynamic / src и вставьте их в мой проект / приложение (в основном, где все моего исходного проекта живет). Этот путь продвигает меня намного дальше. Я попал в веб-сервис моего проекта, он, в свою очередь, пытается вызвать динамический веб-сервис (используя материал динамического WSDL) ... и все в порядке, пока я не попытаюсь использовать объект, который ссылается на объект XMLBeans, то есть когда я нажимаю на мой следующая ошибка:

Cannot load SchemaTypeSystem. Unable to load class with name schemaorg_apache_xmlbeans.system.<*really long id*>.TypeSystemHolder

Таким образом, в основном, это позволит мне сгенерировать мой OrganizationServiceStub, но как только я попытаюсь выполнить запрос (например, RetrieveMultiple), он столкнется с вышеуказанной ошибкой.

Есть идеи? Помощь очень ценится!

Несколько подробностей:

  • Я пытаюсь сослаться на это с помощью Eclipse
  • Использование опции XMLBeans при запуске WSDL2Java
  • Axis2 версия 1.5.4
  • Построен с использованием Apache ant 1.8.3
  • Использование PlayFramework
  • Генерация из MS Dynamics WSDL (очень большое определение!)

Обновление

Я заметил, что если я добавлю сгенерированные WSDL файлы .java в качестве новой исходной папки (вместо того, чтобы копировать / вставлять все файлы .java в исходную папку моего основного проекта), это выдаст ошибку:

The file /app/controllers/Application.java could not be compiled. Error rasied is : com.microsoft.schemas.xrm._2011.contracts.Entity cannot be resolved

Это другая ошибка, чем если бы я копировал и вставлял исходные файлы ... что мне кажется странным ...

...