gpt4 book ai didi

java - 当 Endpoints 框架停止生成 WEB-INF/*.api 文件时,我该如何调试错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:20 24 4
gpt4 key购买 nike

在 Eclipse 中给定一个带有 @Api(name="helloworld") 注释的 servlet 类的 Google Cloud Endpoints 项目,Endpoints 框架生成一个名为 war/WEB-INF 的文件/helloworld-v1.api 当项目编译成功时。有时即使没有编译错误,也不会生成此文件 - 只有我称之为“GAE 端点代码约定错误”。

示例 - 工作:

public class TestEntity {
public String Text;
public TestEntity(String text){
Text = text;
}
}

@ApiMethod
public TestEntity getTestEntity(){
return new TestEntity("Hello world");
}

示例 - 不工作:

// The TestEntity-class is unchanged
@ApiMethod
public TestEntity getTestEntity(String input){
return new TestEntity("Hello world");
}

后一个示例的问题是我将一个 String 参数作为输入,而没有用 @Named 对其进行注释。我知道在这个例子中,但在其他情况下这可能不是很明显。

是否可以在任何地方读取关于为什么未生成 .api 文件的某种错误日志?

虽然按照惯例我是代码爱好者,但如果我做错了什么得不到反馈,那编程效率确实会倒退一步。 Eclipse 提供编译器错误反馈。 Google Cloud Endpoints Framework 应提供违反约定规则的代码反馈。

最佳答案

当代码生成失败时,目前没有良好的日志记录或错误消息,尽管它是(如果不是大多数)请求的功能之一。在此期间,这里列出了常见的失败案例:

  1. 返回类型无效。返回类型必须是符合JavaBean约定的对象,ObjectString等类型>整数 是不允许的。
  2. 一个或多个参数类型无效。方法在POST 主体中最多可以接受一个对象,并且该对象也应符合JavaBean 约定。方法可以通过查询字符串(使用 @Named 注释)接受零个或多个参数,并且这些参数必须是标量类型(例如 StringInteger ).
  3. API、方法或参数的名称无效。API、方法和参数的命名应与以下正则表达式匹配:[a-z]+[A-Za- z0-9]*。约定还建议使用 lowerCamelCase 进行命名(尽管允许使用 alllowercase)。

关于java - 当 Endpoints 框架停止生成 WEB-INF/*.api 文件时,我该如何调试错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com