DSL-Json @compiledJson bean实例化错误

时间:2016-05-04 08:42:10

标签: java json dsl

我正在使用DSL-Json并希望使用DSlJson的serialize()序列化一个类对象。我在MAC上安装了Mono,这样我在构建过程中就不会错过任何东西。 maven构建大部分时间都挂起,我看到以下错误:

 /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**

我使用的是与DSL-Json的Github链接相同的代码:[https://github.com/ngs-doo/dsl-json]

有人可以帮我解决这个错误吗? 感谢

1 个答案:

答案 0 :(得分: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中不可见,因此请尝试在显示javac输出的IntelliJ中进行编译。