Я новичок в разработке и хочу использовать EJB в javaEE. Мой код прост, я хочу создать экземпляр и вставить его в БД, а затем проверить вставку, к сожалению, когда я запускаю клиент, я получаю(нет модуля EJB) класс не найден в функции поиска, SEVERE: EJB6005: не найдены модули EJB javax.naming.NamingException: не удалось выполнить поиск для 'vlibtour.vlibtour_tour_management.api.VlibTourTourManagement' в SerialContext [myEnv = {java. initial = com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.url.pkgs = com.sun.enterprise.naming, java.naming.factory.state = com.sun.corba.ee.impl. presentation.rmi.JNDIStateFactoryImpl} [Исключением корня является javax.naming.NameNotFoundException: vlibtour.vlibtour_tour_management.api.VlibTourTourManagement not found]
, отмечая, что оно хорошо работает в тестовом Junit. ниже приведен фрагмент моего кода:
интерфейс:
@Remote
public interface VlibTourTourManagement {
String testInsert();
String verifyInsert();
Tour findCustomer(String name);
}
bean:
public String testInsert() {
Tour tour = new Tour();
tour.setId(1);
tour.setName("first tour");
// Persist the tour
em.persist(tour);
return "ok for tour";
}
@Override
public String verifyInsert() {
Tour c = findCustomer("first tour");
System.out.println(c.getName()+" "+ c.getId());
return "inserted correctly";
}
@Override
public Tour findCustomer(final String name) {
Query q = em.createQuery("select c from TOUR c where c.name = :name");
q.setParameter("name", name);
return (Tour) q.getSingleResult();
}
на стороне клиента:
@EJB public static VlibTourTourManagement sb;
private static EJBContainer ec;
private static Context ctx;
Tour c;
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(EJBContainer.MODULES, new File("target/classes"));
ec = EJBContainer.createEJBContainer(properties);
ctx = ec.getContext();
try {
sb = (VlibTourTourManagement) ctx.lookup("vlibtour.vlibtour_tour_management.api.VlibTourTourManagement");
System.out.println("Inserting Tour... " + sb.testInsert());
System.out.println("Verifying Tour... " + sb.verifyInsert());
}catch (Exception e) {
e.printStackTrace();
}
Заранее спасибо.