Говоря строго о Logger, вы уверены, что хотите, чтобы он был с состоянием? Большинство проектов, в которых я участвовал, просто берут один в любом классе, где это нужно
Logger log = Logger.getLogger(this.getClass().getName());
Вырезай и вставляй это везде и начинай магию лесозаготовок!
К исходному вопросу о сохранении состояния: хотите ли вы сохранить что-то с состоянием для каждого пользователя (например, сеанс) или какое-то другое состояние в приложении (например, настроенный во время выполнения регистратор)? Сеансами можно управлять с помощью HttpRequest и некоторых ServletFilters. Захватите запрос в своем коде JErsey следующим образом
@Path("/awesome")
public class AwesomeService {
@GET
@Produces("text/awesome")
public String getAwesome(@Context HttpServletRequest req) {
HttpSession session= req.getSession(true);
//brilliance
}
}
Ресурсы приложения, такие как менеджер сущностей или konfabulator, могут быть инициализированы статически и использоваться как синглтоны или с фабриками.
class EntityManager {
EntityManager manager;
public static EntityManager getManager() {
if(manager == null) {
manager = initManager();
}
return manager;
}
}