动态设置ApplicationPath

时间:2018-03-19 13:31:21

标签: rest java-ee jax-rs

如何根据配置文件中的uri字符串动态设置ApplicationPath? 还有其他选择吗?

import javax.ws.rs.core.Application;

@javax.ws.rs.ApplicationPath("some/uri/test")
public class ApplicationConfig extends Application 
{  
}

1 个答案:

答案 0 :(得分:0)

据我所知,您无法动态设置@ApplicationPath的值。

但是,您可以尝试使用web.xml部署描述符配置应用程序路径。不使用url-pattern进行硬编码,而是使用Maven Resource Filtering从配置文件中读取值。

在使用JAX-RS 1.1及更高版本的Servlet 3.x中,您可以在Application中指定实现<servlet-name>的类的完全限定名称。请注意,Servlet声明中省略了<servlet-class>元素:

<web-app>

    <servlet>
        <servlet-name>org.example.ApplicationConfig</servlet-name>
    </servlet>

    <servlet-mapping>
        <servlet-name>org.example.ApplicationConfig</servlet-name>
        <url-pattern>${application.path}</url-pattern>
    </servlet-mapping>

</web-app>

有关如何配置${application.path}变量值的详细信息,请参阅Maven Resource Filtering文档。