在EAR的部署中运行EJB中的main方法

时间:2015-10-28 18:09:45

标签: java ejb ear websphere-7

我创建了一个有一个Main类的java项目。所以我使用这个Main类 main方法来运行这个Java Project。但是现在我的要求发生了变化,我必须创建这个项目的EJB,并且可部署的工件将是EAR。所以我仍然在寻找如何在Websphere中部署此EAR时运行此主要方法。

只是想总结一下我想在EJB中部署EAR时在EJB中执行main方法,搜索了很多尝试一两种方法但仍在寻找一些好方法。

2 个答案:

答案 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。