rest - WildFly 管理 - 列出/检测 WildFly 中部署的 REST 端点

标签 rest jakarta-ee wildfly-8

有没有办法(例如从 WildFly 管理控制台)列出 WildFly 中部署的所有 REST 端点?或者在服务器启动时将它们列在日志中?

最佳答案

使用RegistryStatsResource

使用 RESTEasy(随 WildFly 一起提供),您可以将以下内容添加到 web.xml 中:

<context-param>
    <param-name>resteasy.resources</param-name>
    <param-value>org.jboss.resteasy.plugins.stats.RegistryStatsResource</param-value>
</context-param>

然后请求以下 URL:

http://[hostname]:[port]/[context]/[api-path]/resteasy/registry

此类端点可以生成 XML 和 JSON 内容。只需将 Accept header 添加到具有所需媒体类型的请求中即可:

  • application/xml
  • application/json

检查源代码

如果您对创建自己的实现的源代码感兴趣,请查看 RegistryStatsResource class on GitHub .

源代码中最相关的部分如下所示(它是 RESTEasy 特定的):

ResourceMethodRegistry registry = (ResourceMethodRegistry) 
    ResteasyProviderFactory.getContextData(Registry.class);

for (String key : registry.getBounded().keySet()){
List<ResourceInvoker> invokers = registry.getBounded().get(key);

for (ResourceInvoker invoker : invokers) {

    if (invoker instanceof ResourceMethodInvoker) {

        ResourceMethodInvoker rm = (ResourceMethodInvoker) invoker;

        // Extract metadata from the ResourceMethodInvoker
    }
}

Swagger 可能是一种替代方案

根据您的要求,您可以使用 Swagger记录您的 API。它带有 set of annotations描述您的 REST 端点。

然后使用 Swagger UI为您的 API 提供实时文档。

<小时/>

注意:截至 2017 年 2 月,看起来像 RegistryStatsResource类完全没有记录。我在深入研究 RESTEasy 源代码以进行调试时偶尔会发现它。另外,我发现了这个JBoss EAP issue跟踪该类缺少文档的情况。

关于rest - WildFly 管理 - 列出/检测 WildFly 中部署的 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462401/

相关文章:

java - 使用 Jboss7 加载资源返回 null

java - MyBatis:使用 java 接口(interface)映射器获取受影响的行号

java - 在 wildfly 8 中使用 apache commons BasicDataSource

Java/jetty/野蝇 : Gracefully Handle Aborted Client Connections

java - 在 WildFly 8.1 上运行 Jersey2 REST 客户端时出现问题

java - 如果 RequestBody 中存在任何未知字段,则需要拒绝 POST/PUT 请求

c# - WCF Xml 序列化和自动实现的属性

android - java.lang.VerifyError : MappingJacksonHttpMessageConverter, 我需要什么 jackson 版本?

php - 来自 REST 客户端的 NetBeans 调试 session

java - 将 JAX-RS 与 CDI 集成的正确方法?