我创建了一个有一个Main类的java项目。所以我使用这个Main类 main方法来运行这个Java Project。但是现在我的要求发生了变化,我必须创建这个项目的EJB,并且可部署的工件将是EAR。所以我仍然在寻找如何在Websphere中部署此EAR时运行此主要方法。
只是想总结一下我想在EJB中部署EAR时在EJB中执行main方法,搜索了很多尝试一两种方法但仍在寻找一些好方法。
答案 0 :(得分:1)
从您的问题和评论中,如果您完全理解EJB的工作方式(即他们的生命周期,他们如何被调用等),我并不完全清楚。如果您还没有这样做,我建议您阅读Java EE教程,例如: this one from Oracle
一旦您了解了工作原理,have a look here并选择最适合您案例的方式。
所有方法的共同之处在于你不能像以前那样拥有main方法,但是你必须将它转换为EJB的普通公共方法,它将在启动时被调用。
由于您仍在使用EAR,因此您还可以在EJB中的EAR中打包WAR,然后使用链接中描述的set.seed(124)
df_L <- data.frame(values=rnorm(1000,500,200),type=sample(LETTERS[1:3],1000,T))
g <- ggplot(df_L, aes(x=values, linetype= type)) +
geom_density() +
ggtitle(expression('Low Region: '~LI[i]~'and'~WI[i])) +
scale_x_continuous(breaks = c(seq(0,100,10)), expand = c(0,0)) +
scale_y_continuous(expand = c(0,0)) +
coord_cartesian(xlim = c(0,100)) +
theme(text = element_text(size=20),
plot.title = element_text(size=14, vjust=1.5, hjust=0.5),
axis.title.x=element_blank(),
axis.title.y = element_blank(),
legend.position = c(0.1, 0.75),
legend.text.align = 0,
legend.box = 'horizontal',
legend.margin = unit(45.0, 'line'),
legend.text=element_text(size=14,vjust=0,hjust=0),
legend.key.height = unit(1, 'line'),
legend.key.width = unit(1, 'line'),
panel.background = element_rect(fill = "white"),
axis.line=element_line(colour="red",size=2)) +
scale_linetype_manual(values=c(1,2,3),
labels=c(expression(LI[i]),expression(WI[i]))) +
guides(linetype = guide_legend(title=NULL))
方法。
但现在几乎没有必要拥有EAR。您可以将所有内容打包在WAR中。见这里:Why use an ear instead of a war?
答案 1 :(得分:0)
据我所知,如果您使用的是Java EE 6,并且希望以预定的方式调用EJB方法,则可以通过使用@Schedule
注释来创建调度程序EJB,注入EJB在其中并使调度方法调用您注入的EJB方法。如果情况并非如此,并且您希望按需调用它们,则需要一个客户端,例如注入它们的Servlet。