【问题标题】:Odata Restlet code generation failedOdata Restlet 代码生成失败
【发布时间】:2015-04-15 17:43:55
【问题描述】:
public static void main(String[] args) {
    // TODO Auto-generated method stub
    String[] arguments =
          { "http://services.odata.org/V4/Northwind/Northwind.svc/",
          "src/com" };
    Generator.main(arguments);
}

输出:

    ---------------------------
OData client code generator
---------------------------
step 1 - check parameters
step 2 - check the ouput directory
step 3 - get the metadata descriptor
Starting the internal HTTP client
Get the metadata for http://services.odata.org/V4/Northwind/Northwind.svc/ at http://services.odata.org/V4/Northwind/Northwind.svc/$metadata
Starting the internal HTTP client
step 4 - generate source code
Starting the internal HTTP client
Get the metadata for http://services.odata.org/V4/Northwind/Northwind.svc/ at http://services.odata.org/V4/Northwind/Northwind.svc/$metadata
Starting the internal HTTP client
Stopping the internal HTTP client
Stopping the internal HTTP client
Stopping the internal HTTP client
Stopping the internal HTTP client
Error executing FreeMarker template

FreeMarker template error:
get(importedJavaClasses) failed on instance of org.restlet.ext.odata.internal.edm.EntityType. See cause exception.

The failing instruction (FTL stack trace):
----------
==> #list type.importedJavaClasses?sort a...  [in template "template" at line 29, column 1]
----------

Java stack trace (for programmers):
----------
freemarker.template.TemplateModelException: [... Exception message was already printed; see it above ...]
    at freemarker.ext.beans.BeanModel.get(BeanModel.java:222)
    at freemarker.core.Dot._eval(Dot.java:76)
    at freemarker.core.Expression.eval(Expression.java:111)
    at freemarker.core.SequenceBuiltins$SequenceBuiltIn._eval(SequenceBuiltins.java:94)
    at freemarker.core.Expression.eval(Expression.java:111)
    at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
    at freemarker.core.Environment.visit(Environment.java:265)
    at freemarker.core.MixedContent.accept(MixedContent.java:93)
    at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
    at freemarker.core.Environment.visitAndTransform(Environment.java:377)
    at freemarker.core.CompressedBlock.accept(CompressedBlock.java:73)
    at freemarker.core.Environment.visit(Environment.java:265)
    at freemarker.core.MixedContent.accept(MixedContent.java:93)
    at freemarker.core.Environment.visit(Environment.java:265)
    at freemarker.core.Environment.process(Environment.java:243)
    at freemarker.template.Template.process(Template.java:277)
    at org.restlet.ext.freemarker.TemplateRepresentation.write(TemplateRepresentation.java:315)
    at org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:67)
    at org.restlet.ext.odata.Generator.generate(Generator.java:283)
    at org.restlet.ext.odata.Generator.main(Generator.java:140)
    at com.MainMethod.main(MainMethod.java:14)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:912)
    at freemarker.ext.beans.BeanModel.invokeThroughDescriptor(BeanModel.java:275)
    at freemarker.ext.beans.BeanModel.get(BeanModel.java:182)
    ... 20 more
Caused by: java.lang.NullPointerException
    at org.restlet.ext.odata.internal.edm.EntityType.getImportedJavaClasses(EntityType.java:121)
    ... 27 more
An error occurred: 
Cannot generate the source code in directory: src\com

Please check that you provide the following parameters:
   - Valid URI for the remote service
   - Valid directory path where to generate the files
   - Valid name for the generated service class (optional)

我的库

可能是什么问题?

谢谢。

【问题讨论】:

  • 你试过用“src”代替“src/com”吗? “com”目录是包,而不是项目源代码的根目录。
  • 将第二个字符串更改为 'src' ,同样的错误。你实现生成类了吗?

标签: java eclipse odata restlet


【解决方案1】:

我看到您使用带有 restlet OData 扩展的 OData v4 服务。此扩展目前仅支持旧版本的 OData(v2 和 v3)。

我知道有正在进行的贡献来支持这个最新版本或 OData。

我几乎可以肯定这是你的问题的原因......

希望对你有帮助, 蒂埃里

【讨论】:

  • 有什么方法可以找出 Odata v4 何时可用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 2015-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多