在不同的论坛[1] [2] [3]上有很多关于此主题的问题,但似乎都没有提供明确的答案。我已尝试过各种帖子中提出的不同组合,但我还没有成功。
我的目标是在独立的tomcat(8)中重新加载已编译的源代码 - 就像嵌入式tomcat重新加载新的编译源代码一样。弹簧靴或Grails。我需要遵守一些限制条件:
为了简单起见我在使用Spring MVC作为POC之前使用了一个非常简单的JEE应用程序。设置如下(现在):
library(tidyverse)
df %>% gather(var, date, -ID) %>% # reshape to long form
# separate date type from column set number
separate(var, c('action', 'number'), sep = '_date', convert = TRUE) %>%
mutate(date = as.Date(date, '%d-%m-%Y')) %>% # parse dates
spread(action, date) %>% # spread create and delete to two columns
mutate(min_date = min(create, delete, na.rm = TRUE), # add helper columns; use outside
max_date = max(create, delete, na.rm = TRUE)) %>% # variable to save memory if an issue
group_by(ID, number) %>%
mutate(month = list(seq(min_date, max_date, by = 'month')), # add month sequence list column
# boolean vector of whether range of months in whole range
active = ifelse(is.na(create),
list(rep(FALSE, length(month[[1]]))),
lapply(month, `%in%`,
seq.Date(create,
min(delete, max_date, na.rm = TRUE),
by = 'month')))) %>%
unnest() %>% # unnest list columns to long form
group_by(ID, month = format(month, '%Y-%m')) %>%
summarise(active = any(active) * 1L) %>% # combine muliple rows for one ID
spread(month, active) # reshape to wide form
## Source: local data frame [2 x 9]
## Groups: ID [2]
##
## ID `2014-01` `2014-02` `2014-03` `2014-04` `2014-05` `2014-06` `2014-07` `2014-08`
## * <int> <int> <int> <int> <int> <int> <int> <int> <int>
## 1 1 1 1 1 1 1 1 1 1
## 2 2 0 0 0 1 1 0 0 1
target/exploded
除外,其中Context.xml
的两行被删除。上下文未设置为WatchedResource
。服务器启动,应用程序正常运行。然后我尝试更改一些代码,保存它,并构建一个新的爆炸war文件。我可以看到类文件发生了变化 - 但没有在tomcat中重新加载。
有人可以详细说明吗?这种方法是否可行 - 与许多帖子所暗示的相反?如何在嵌入式tomcat中实现例如Grails的?