从 java class 得到 url

Get url from java class

我有这个单例 class,它将在应用程序启动时启动,并且该方法每 30 秒调用一次。

@Singleton
@Startup
public class myClass{
    @Schedule(second="*/30", minute="*", hour="*")
    public void serviceRequest(){
        String url = "";
        //send request
    }
}

url 将类似于 http://localhost:7001/webapp/rest/tasks/mytask。我不想硬编码 url。相反,我想以某种方式从系统(或某处)获取它。我试过注入 HttpServletRequest 之类的资源,但没有用。

提前致谢。

如果您使用的是 JAX-RS,那么这将起作用:

@RequestScoped @Path("tasks")
public class TaskResource {

    @GET @Path("{id}")
    public Response getTask(@PathParam("id") String id) {
         /* whatever */
    }

}

URI uri = UriBuilder.fromResource(TaskResource.class)
    .segment("{id}").build("mytask");

url 将由外部服务提供,因此我无需担心主机和端口号,因为我会完全 url 到该其余服务。因为该服务不可用,所以我做了一个内部休息服务来测试我的功能。我想我现在会对 url 进行硬编码。