如何统计TomEE中Jersey编写的应用托管的Web服务及对应源码类
统计TomEE中Jersey Web服务数量及定位源码类的方法
方法一:运行时通过Jersey API直接获取
- 给应用加一个专门的元数据查询端点(如果没有的话),代码示例:
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import org.glassfish.jersey.server.ApplicationHandler; import org.glassfish.jersey.server.model.Resource; import org.glassfish.jersey.server.model.ResourceMethod; @Path("/service-metadata") public class ServiceMetadataResource { @GET @Produces(MediaType.TEXT_PLAIN) public String getServiceInfo() { ApplicationHandler appHandler = ApplicationHandler.getCurrent(); StringBuilder result = new StringBuilder(); int totalCount = 0; for (Resource resource : appHandler.getConfiguration().getResources()) { String basePath = resource.getPath(); result.append("基础路径: ").append(basePath).append("\n"); for (ResourceMethod method : resource.getAllMethods()) { String fullUrl = "/" + basePath + method.getPath(); String sourceClass = method.getInvocable().getHandler().getHandlerClass().getName(); result.append(" HTTP方法: ").append(method.getHttpMethod()) .append(" | 完整URL: ").append(fullUrl) .append(" | 源码类: ").append(sourceClass) .append("\n"); totalCount++; } } result.append("\n总Web服务数量: ").append(totalCount); return result.toString(); } }
- 部署应用后,访问
http://<TomEE地址>:<端口>/<应用上下文>/service-metadata,就能直接看到所有服务的URL、对应HTTP方法和源码类全限定名,同时得到总数。 - 注意:确保应用依赖了Jersey的server包(
org.glassfish.jersey.core:jersey-server)。
方法二:解析Jersey配置文件找服务
情况1:用web.xml配置Jersey
- 打开
web.xml,找到<servlet>下的<init-param>,其中jersey.config.server.provider.packages指定了扫描的包路径。 - 直接去源码目录里搜这个包下带
@Path注解的类,每个类的@Path值加上方法上的@Path(如果有)就是完整服务URL,统计这些类+方法的组合数就行,源码类也直接对应找到。
情况2:用Application子类配置Jersey
- 找到继承
javax.ws.rs.core.Application的类,看getClasses()或getSingletons()返回的类列表。 - 逐个检查这些类是否带
@Path注解,再看类里带@GET/@POST等HTTP注解的方法,组合路径得到URL,同时直接定位到源码类。
方法三:通过字节码分析WAR包
- 从TomEE管理控制台找到你的应用,导出WAR包或解压后的classes目录。
- 用JD-GUI、Bytecode Viewer这类工具扫描所有class文件,筛选出带
@javax.ws.rs.Path注解的类。 - 逐个查看这些类里的HTTP方法注解,记录对应的URL路径和类名,最后统计总数。
内容的提问来源于stack exchange,提问作者Prasad Jadhav
相关产品推荐
相关产品推荐

