2016-05-04 1 views
1

Я использую DSL-Json и хочу сериализовать объект класса с помощью serialize() DSlJson. Я установил Mono на MAC, чтобы я ничего не пропустил во время сборки. Сборки Maven висит большую часть времени, и я вижу следующие ошибки:DSL-Json @compiledJson ошибка создания экземпляра

/Users/<workspace_path>/DSLIntegration/target/classes/dsl_json/json/ExternalSerialization.java:[869,81] a.b.c.Example.Model.**Abstract is abstract; cannot be instantiated** 
/Users/<workspace_path>/DSLIntegration/target/classes/dsl_json/json/ExternalSerialization.java:[877,73] a.b.c.Example.Model.**Abstract is abstract; cannot be instantiated** 

Я использую тот же код, как указано в ссылке Github из DSL-Json: [https://github.com/ngs-doo/dsl-json]

Может кто-то пожалуйста, помогите я разрешаю эту ошибку? Благодаря

ответ

0

Таким образом, кажется, что

public Abstract abs; 

дает вам горе. Это может быть возможно только в том случае, если у вас нет последнего компилятора для привязки данных. Если это так, попробуйте комментировать это свойство (и очистить код, который ссылается на него), чтобы увидеть, работает ли он без функции абстрактного класса (это должно поддерживаться в действительно старых версиях).

Если он работает в этом случае, скорее всего, Maven не загрузил последний компилятор (он должен это делать, если не указано иное).

Вы можете загрузить его вручную: https://compiler.dsl-platform.com:8443/platform/download/dsl-compiler.zip

и указать его в pom.xml с

<configuration> 
    <annotationProcessors> 
    <annotationProcessor>com.dslplatform.json.CompiledJsonProcessor</annotationProcessor> 
    </annotationProcessors> 
    <compilerArguments> 
    <Adsljson.compiler>path_to_compiler/dsl-compiler.exe</Adsljson.compiler> 
    </compilerArguments> 
</configuration> 

Если указать неправильный путь, Maven будет блокировать с запросом, так что вы должны попробовать его из консоль сначала.

Мне не удалось воспроизвести вашу проблему на MAC, но я добавил подробный параметр ведения журнала для отладки таких проблем. Попробуйте обновить зависимость процессора от v0.9 и включите ведение журнала DEBUG для получения подробной информации: https://github.com/ngs-doo/dsl-json/blob/master/examples/Maven/pom.xml#L35 Обратите внимание, что выход Javac не отображается в Maven, поэтому попробуйте скомпилировать его в IntelliJ, который показывает выход javac.

+0

Привет, мне удалось решить вышеуказанную ошибку, но теперь я получаю ** Невозможно выполнить сериализацию предоставленного объекта. Не удалось найти сериализатор для: class java.lang.Class **. ExternalSerialization.java генерируется и mvn build успешно – user2340345

+0

Вы получаете это для примера ванили или для своего пользовательского кода? Покажите код, если это что-то обычное. –

+0

Для пользовательского кода - пожалуйста, обратитесь к этому вопросу - http://stackoverflow.com/questions/37122711/resdsl-json-with-resteasy-getting-nomessagebodywriterfoundfailure-error?noredirect1_comment61806001_37122711 – user2340345