Java 找不到EJB方法

Java 找不到EJB方法,java,ant,jboss,ejb,liferay-6,Java,Ant,Jboss,Ejb,Liferay 6,我正在使用liferay 6.1并在EclipseIDE上工作 我从另一台PC复制的EJB项目(使用JDK1.7,与我的相同)。 我正在编译这个EJB项目,并将其导出为jar,并在我的liferay portlet上使用它 所以基本上我调用ejb方法。令人惊讶的是,我可以调用所有已经存在的方法。但现在,当我在远程接口上添加新方法时,如下所示:- @Remote public interface PreExaminationRemote { public String dummy(); }

我正在使用liferay 6.1并在EclipseIDE上工作

我从另一台PC复制的EJB项目(使用JDK1.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.我改变了工作空间


似乎什么都不管用

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

在重新部署之前,搜索可用的类路径,不要忘记appserver全局文件、您自己的WEB-INF/lib以及appserver的临时和工作目录。要处理锁定的文件(例如在Windows下),请重新启动、重新部署并检查它是否仍然无法工作


对于这种行为,我看不到任何其他解释。

您的EJB看起来像什么?它实现了那个方法吗?你确定Liferay得到了你的罐子的新版本了吗?是的。它只返回一个字符串值。您不需要用
@EjbMethod
注释该方法吗?我将此ejb项目导出为jar(Preexamination.jar),并将其放入WEB-INF/lib文件夹中。它以前一直工作,但不确定为什么这次不工作。不,我不需要注释,因为我正在使用JNDI查找。