Невозможно параметризовать функцию ejb - PullRequest
1 голос
/ 28 августа 2010

Я могу написать EJB, как это ...

@Stateless

public class AnotherBean {

@PersistenceContext(unitName = "VoidJPA-ejbPU")
private EntityManager em;

public void newTest() {
    System.out.println("Testing");

}
}

И назовите это, используя сервлет

@EJB
private AnotherBean nsb;
...
...
nsb.newTest();

Но всякий раз, когда я помещаю переменную в newTest (), я не могу получить к ней доступ

public void test(String i)

Сервлет и EJB развернуты, но все еще сервер выдает ошибку

  WARNING: StandardWrapperValve[HelloEjb]: PWC1406: Servlet.service() for servlet 
  HelloEjb threw exception
  java.lang.NoSuchMethodError: enew.AnotherBean.newTest(Ljava/lang/String;)V
    at jpa.HelloEjb.processRequest(HelloEjb.java:44)
    at jpa.HelloEjb.doGet(HelloEjb.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
  .....
  ........
  ......

Любая помощь

Спасибо

Pradyut

Индия

Ответы [ 3 ]

1 голос
/ 28 августа 2010

Сервлет явно не видит версию Бина с параметром String во время выполнения (у вас может быть несколько версий в пути к классам). Это может быть проблема упаковки, проблема развертывания. Вам нужно больше рассказать нам о том, как вы упаковываете и разворачиваете свое приложение.

0 голосов
/ 12 сентября 2010

Да, я понял ...

В netbeans я должен был сделать следующее ...

  1. Очистить и построить Ejb Project

  2. Развертывание Ejb Project

  3. Разверните проект WebApplication (war) (и убедитесь, что ejb jar находится в библиотеках, которые автоматически выполняет netbeans и не нужно беспокоиться).

0 голосов
/ 29 августа 2010

Очистите и перестройте приложение, а затем снова разверните. Также проверьте зависимости. Похоже, что контракт EJB не виден сервлету.

...