gpt4 book ai didi

java - Dropwizard + Raml -> 空资源

转载 作者:搜寻专家 更新时间:2023-11-01 02:40:56 26 4
gpt4 key购买 nike

当我启动服务器时,出现一条警告,提示我的资源为空(结果为 404):

WARN  org.glassfish.jersey.internal.Errors - The following warnings have been detected: WARNING: A resource, Resource{"helloz", 0 child resources, 0 resource methods, 0 sub-resource locator, 0 method handler classes, 0 method handler instances}, with path "helloz" is empty. It has no resource (or sub resource) methods neither sub resource locators defined.

拉姆:

#%RAML 0.8
---
title: API
version: 0.1
mediaType: application/json
baseUri: "{apiRoot}/api"
baseUriParameters:
apiRoot:
description: Set the root of the service here
example: http://localhost:9090
schemas:
- common: !include common-schema.json
- hello-schema: |
{ "$schema": "http://json-schama.org/draft-03/schema",
"type": "object",
"description": "A Hello World Schema",
"properties": {
"times": { "type": "number"}
}
}
- meta-error: |
{ "$schema": "http://json-schama.org/draft-03/schema",
"type": "object",
"description": "A generic error response for the API",
"properties": {
"message": { "type": "string" },
"details": { "type": "array",
"items": { "type": "string" }
}
}
}
traits:
- secured:
usage: Apply this to any method that needs to be secured
description: Some requests require authentication.
queryParameters:
access_token:
description: Access Token
type: string
example: ACCESS_TOKEN
# required: true

/helloz:
is: [ secured ]
post:
description: Just say hello
body:
application/json:
schema: hello-schema
example: !include examples/empty.json
responses:
200:
body:
application/json:
schema: hello-schema
400:
description: A malformed input message
body:
application/json:
schema: meta-error

实现:

public class SayHello implements Helloz {

@Override
public PostHellozResponse postHelloz(@QueryParam("access_token") String accessToken, HelloSchema entity) throws Exception {
System.out.println("Hello World!");
return PostHellozResponse.withJsonOK(null);
}
}

在 Application#run 中,我只执行以下操作:environment.jersey().register(SayHello.class);

最佳答案

好的,这并不明显——您需要删除实现类中的注释:

错误

public class SayHello implements Helloz {

@Override
public PostHellozResponse postHelloz(@QueryParam("access_token") String accessToken, HelloSchema entity) throws Exception {
System.out.println("Hello World!");
return PostHellozResponse.withJsonOK(null);
}
}

正确:

public class SayHello implements Helloz {

@Override
public PostHellozResponse postHelloz(String accessToken, HelloSchema entity) throws Exception {
System.out.println("Hello World!");
return PostHellozResponse.withJsonOK(null);
}
}

关于java - Dropwizard + Raml -> 空资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348820/

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