EJB метод не найден - PullRequest
       20

EJB метод не найден

0 голосов
/ 02 октября 2018

Я использую liferay 6.1 и работаю над Eclipse IDE.

Проект EJB, который я скопировал с другого компьютера (который использует JDK 1.7 так же, как мой).Я компилирую этот EJB-проект и экспортирую его в виде jar-файла и использую его в своем портлете liferay.

, поэтому в основном я вызываю метод ejb.удивительно, я могу назвать все методы, которые уже были там.но теперь, когда я добавляю новый метод в мой удаленный интерфейс, например: -

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

Класс реализации

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

и вызываю его из контроллера моего портлетапросто сгенерирует исключение метода не найден.

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 голосов
/ 02 октября 2018

Я бы с уверенностью ожидал, что это исключение появится, когда у вас устаревший код.Это может быть кэш сервера приложений, дублированный код (например, два разных jar-файла на одном и том же пути к классам, с одним и тем же кодом в разных версиях) или заблокированные файлы, которые не могут быть перезаписаны.

Поиск по доступному пути к классам,не забудьте перед переустановкой appserver-globals, свой собственный WEB-INF / lib и временный и рабочий каталог appserver.Чтобы обойти заблокированные файлы (например, под Windows), перезагрузите компьютер, повторно разверните его и проверьте, не работает ли он по-прежнему.

Я не вижу других объяснений этому поведению.

...