找不到EJB方法

时间:2018-10-02 06:47:38

标签: java ant jboss ejb liferay-6

我正在使用liferay 6.1并在Eclipse IDE上工作。

我从另一台PC复制的EJB项目(使用与我相同的JDK 1.7)。 我正在编译这个EJB项目,并将其导出为jar文件,并在liferay portlet上使用它。

所以基本上我叫ejb方法。令人惊讶的是,我可以调用所有已经存在的方法。但是现在当我在远程接口上添加新方法时,就像这样:-

@Remote
public interface PreExaminationRemote {
  public String dummy();
}

实施班

@Stateless
public class PreExamination implements 
PreExaminationRemote,PreExaminationLocal{
  public String dummy(){
  return "works";
 }
}

并从我的portlet的控制器中调用它,它只会抛出未找到的方法异常。

Exception in thread "liferay/scheduler_dispatch-1" 
java.lang.NoSuchMethodError: 
com.test.PreExaminationRemote.dummy()Ljava/lang/String;

我正在使用ant来构建jar文件。 1.我试过清洁蚂蚁。 2.我试图清理ejb项目 3.我改变了工作区

似乎没有任何作用。

1 个答案:

答案 0 :(得分:1)

我希望,当您使用过时的代码时,肯定会出现此异常。这可能是应用程序服务器的缓存,重复的代码(例如,同一类路径上的两个不同的jar,不同版本中的同一代码)或无法覆盖的锁定文件。

在可用的类路径中进行搜索,在重新部署之前,请不要忘记appserver-globals,您自己的WEB-INF / lib以及appserver的temp和work目录。要解决锁定的文件(例如在Windows下),请重新启动,重新部署并检查其是否仍然无法正常工作。

对于此行为,我没有看到其他任何解释。