Tomcat: как получить доступ к локальному файлу в Apache CXF-webapp?

#tomcat #cxf

#tomcat #cxf

Вопрос:

У меня есть tomcat, на котором запущено мое веб-приложение на основе CXF.

Методы, с которыми я работаю, имеют такие подписи:

 @GET
@Path ("/handler/contract/{ItemId}")
@Produces ("application/xml")
public Item getItem(@PathParam("ItemId") Integer ItemId) throws Exception{  
    //...
    return item;
}
 

Обычно это очень полезно, поскольку мне не нужно иметь дело с объектами ответа / запроса и охватывать бизнес-логику.

Но теперь мне нужно получить доступ к локальному файлу, чтобы вставить его в PDF. Я просмотрел все элементы здесь и в документе, но не смог найти надежный и простой способ доступа к контексту или запросу, чтобы найти текущий путь к веб-приложению, чтобы я мог получить доступ к файлу в взорванном WAR.

Любая помощь, как получить текущий локальный путь к CXF-webapp?

Ответ №1:

Как всегда, если вы, наконец, написали сообщение, вы сами найдете решение. С @Context аннотацией вы получите правильный контекст.

 @GET
@Path ("/handler/contract/{ItemId}")
@Produces ("application/xml")
public Item getItem(@Context ServletContext context, @PathParam("ItemId") Integer ItemId) throws Exception{  
    //retrieve the local path from the context
    String currentLocalPath = context.getRealPath(".");
    //...
    return item;
}
 

Спасибо за посещение. 🙂