Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将计划EJB部署到Glassfish服务器时出现问题_Java_Jakarta Ee_Glassfish_Ejb - Fatal编程技术网

Java 将计划EJB部署到Glassfish服务器时出现问题

Java 将计划EJB部署到Glassfish服务器时出现问题,java,jakarta-ee,glassfish,ejb,Java,Jakarta Ee,Glassfish,Ejb,我想部署到Glassfish 3.1应用服务器的EJB有一个奇怪的(?)问题 我有这个bean,应该使用@Schedule注释在Glassfish中连续执行。在我向访问数据库的EJB添加了一些代码之前,这对我来说很好 @Stateless public class MyBean implements MyBeanLocal { @Schedule(second = "*", minute = "*", hour = "*") public void initiateProces

我想部署到Glassfish 3.1应用服务器的EJB有一个奇怪的(?)问题

我有这个bean,应该使用
@Schedule
注释在Glassfish中连续执行。在我向访问数据库的EJB添加了一些代码之前,这对我来说很好

@Stateless
public class MyBean implements MyBeanLocal {

    @Schedule(second = "*", minute = "*", hour = "*")
    public void initiateProcess() {

        MyCoordinator mc = new MyCoordinatorImpl();
        List<Entity> entities = mc.methodAccessingDB();
    }
}
@无状态
公共类MyBean实现MyBeanLocal{
@日程安排(秒=“*”,分钟=“*”,小时=“*”)
public void initiateProcess(){
MyCoordinator mc=新的MyCoordinatorImpl();
List entities=mc.methodAccessingDB();
}
}
这是我的EJB,每秒执行一次。如上所述,如果我不调用
ac.methodAccessingDB()
,我可以部署这个EJB并成功执行它。 这意味着,我甚至不能将其部署到Glassfish。玻璃鱼告诉我

无效的ejb jar[…]:它包含零个ejb。注:1。一个有效的ejbjar 至少需要一个会话、实体(1.x/2.x样式)或 消息驱动bean。2.EJB3+实体bean(@entity)是POJO和 请将它们打包为库jar。3.如果jar文件包含有效的 使用EJB组件级注释进行注释的EJB (@Stateless、@Stateful、@MessageDriven、@Singleton),请检查 server.log以查看批注是否得到正确处理。。 有关详细信息,请参阅server.log


如果我只写
List entities=null而不是
列出实体=ac.methodAccessingDB()我可以部署它,并且运行良好。

好的,现在我找到了解决此问题的方法。EJB在部署的版本上找不到类。解决方案是将所有内容打包到一个ear项目中。我使用的是maven,所以我在最后创建了3个项目

  • 一个用于EJB
    EJB
  • 一个用于EAR
    EAR
  • 以及第三个父项目,它将其他两个项目集成为

然后我把包好的耳朵放在玻璃鱼身上,计时器启动了,所有的东西都在那里

上面的代码中有一个错误。变量名为
mc
,但您正在
ac
上调用
methodAccessingDB
。好啊我的错误是,我在发布到Stackoverflow之前更改了名称。谢谢