我正在使用RESTEasy编写WebService的示例,并设置了根资源路径。但是我发现即使url中没有根路径,我仍然可以获得正确的资源。
主要功能代码:
NettyJaxrsServer netty = new NettyJaxrsServer();
ResteasyDeployment deploy = new ResteasyDeployment();
List<Object> resources = new ArrayList<Object>();
resources.add(new UserService());
deploy.setResources(resources);
netty.setDeployment(deploy);
netty.setPort(8180);
netty.setRootResourcePath("/hello/");
netty.setSecurityDomain(null);
netty.start();
服务代码:
@Path("user")
@Produces(MediaType.APPLICATION_JSON)
public class UserService {
对于代码,url /user 可以正常工作,不需要添加/hello 的根路径。我检查了源代码;它自己添加根路径。
源代码:
public static String getEncodedPathInfo(String path, String contextPath)
{
if(contextPath != null && !"".equals(contextPath) && path.startsWith(contextPath))
path = path.substring(contextPath.length());
return path;
}
我的问题是为什么 RESTEasy 这样做?我无法理解。