strutsアクションでEJBオブジェクトを呼び出す際に問題があります。StrutsアクションでEJBオブジェクトを呼び出す
私はglassfishにアプリケーションを配備しました。glassfish管理コンソールのアプリケーション記述には、1つのStatelessSessionBeanが配備されています。私のアプリケーションの.earファイルは、メッセージ駆動型の1つのセッションBeanである.war(Webモジュール)と.jar(ejb)で構成されています。
strutsアクションクラスでセッションBeanを呼び出そうとすると、nullpointer例外が発生します。ここで
は私の呼び出しです:
@EJB
private AccountFacade accountFacade;
@Override
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
UserCreationForm userCreationForm = (UserCreationForm) form;
Account account = new Account();
account.setName(userCreationForm.getName());
account.setEmail(userCreationForm.getEmail());
account.setPassword(userCreationForm.getPassword());
accountFacade.create(account);
return mapping.findForward(NavigationUtils.ACTION_SUCCESS);
}
例外は、この行で発生します。
@Stateless
public class AccountFacade extends AbstractFacade<Account> implements AccountFacadeLocal {
/**
* Persistence context entity manager.
*/
@PersistenceContext(unitName = "SearchEnginePU")
private EntityManager em;
/**
* Gets entity manager.
*
* @return entity manager.
*/
@Override
protected EntityManager getEntityManager() {
return em;
}
/**
* Constructor.
*/
public AccountFacade() {
super(Account.class);
}
}
AccountFacadeLocalインタフェース:
@Local
public interface AccountFacadeLocal {
void create(Account account);
void edit(Account account);
void remove(Account account);
Account find(Object id);
List<Account> findAll();
int count();
}
アカウントファサードクラスは、このようになります。
私はここで何が欠けていますか?
ありがとうございました。私の問題を解決できました。 strutsアプリケーションでEJBを使用しているのは初めてです。そのため、私はこれを知らなかったのです。私はJNDIのルックアップを使用しています。 –