Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Проблема с развертыванием EJB


Автор: igor_cartman 13.12.2007, 23:04
Помогите новичку, никак не могу создать бин... Вообщем так: у меня есть три класа:
Домашний интерфейс 
Код

package main;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;
import javax.ejb.Local;
import java.rmi.RemoteException;

public interface CalcHome extends EJBHome{
    public Calc create() throws RemoteException, CreateException;
}


Удаленный интерфейс
Код

package main;

import java.rmi.RemoteException;
import javax.ejb.EJBObject;
import javax.ejb.Remote;

public interface Calc extends EJBObject{
    double getSum() throws RemoteException;
    void setA(double a) throws RemoteException;
    void setB(double b) throws RemoteException;
    
}

Собственный интерфейс
Код

package main;

import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.Stateful;

public class CalcBean implements SessionBean{
    private double a;
    private double b;
    private SessionContext sessionContext;
    
    public double getSum() throws RemoteException{
        return a+b;
    }
    public void setA(double a) throws RemoteException{
        this.a = a;
    }
    public void setB(double b) throws RemoteException{
        this.b = b;
    }    
    public void setSessionContext(SessionContext context){
        sessionContext = context;
    }
    public void ejbCreate(){}
    public void ejbRemove(){}
    public void ejbPassivate(){}
    public void ejbActivate(){}
}


   
   Делаю все это в НетБинз 5.5. Запускаю verify этого бина - выскакивает еррор could not verify successfully. 
   Description: 
java.lang.IllegalArgumentException: Invalid ejb jar [Calc-ejb]: it contains zero ejb. Note: 1. A valid ejb jar requires at least one session, entity (1.x/2.x style), or message driven bean. 2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar. at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:82) at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:675) at com.sun.enterprise.deployment.archivist.EjbArchivist.validate(EjbArchivist.java:177) at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:777) at com.sun.enterprise.tools.verifier.VerificationHandler.createApplicationDescriptor0(VerificationHandler.java:451) at com.sun.enterprise.tools.verifier.VerificationHandler.createApplicationDescriptor(VerificationHandler.java:252) at com.sun.enterprise.tools.verifier.VerificationHandler.initStandalone(VerificationHandler.java:203) at com.sun.enterprise.tools.verifier.VerificationHandler.<init>(VerificationHandler.java:96) at com.sun.enterprise.tools.verifier.Verifier.verify(Verifier.java:127) at com.sun.enterprise.tools.verifier.Verifier.main(Verifier.java:101)

Пробовал с этой ошибкой создавать Джарник и развернуть его,  но EJB  сервер выдает такую же ошибку при развертывании. И вот заметил, что почему то почти пустой xml этого бина. Вот его содержимое : 
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<sun-ejb-jar>
    <enterprise-beans/>
</sun-ejb-jar>



Помогите пожайлуста, уважаемые Ява-эксперты, очень надо, уже прижимает smile) (Это курсовая)

Автор: hamsterKSU 14.12.2007, 01:04
в NetBeans есть тип проекта - Enterprise и все должно получится нормально
и если вы юзаете EJB3, а я почти в этом уверен
Код

"http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd


то ejb создаются уже не так.

почитайте об EJB3 - там все гороздо проше. без никаких HOME интерфейсов и всего другого.
прото юзаете анотации и все, как вариант.

Автор: igor_cartman 14.12.2007, 02:48
Спасибо, hamsterKSU, Уже читаю... Конечно хотелось бы чтобы как то и этот старый подход можна было как то реализовать

Автор: hamsterKSU 14.12.2007, 22:37
ИМХО - старый подход реализовывать не стоит smile

Автор: igor_cartman 15.12.2007, 04:12
Проблема разрешена )    В этом здорово помог мне через асю  hamsterKSU .  Респект ему и +1

Автор: w1nd 15.12.2007, 20:38
На будущее - Netbeans никогда не умела и не умеет создавать vendor-specific дескрипторы, без которых невозможно разворачивать EJB 2.x, используйте для таких случаев, например, JBuilder 2007.

И ещё: с помощью аннотаций в EJB 3 всё равно невозможно скофигурировать всё. Знание vendor-specific дескрипторов вам всё равно понадобится, не для курсовой, так для работы.

Автор: makados 16.12.2007, 03:25
Цитата(w1nd @  15.12.2007,  18:38 Найти цитируемый пост)
с помощью аннотаций в EJB 3 всё равно невозможно скофигурировать всё. Знание vendor-specific дескрипторов вам всё равно понадобится, не для курсовой, так для работы.


у меня есть несколько проектов на jboss с пустым jboss-app.xml. Полностью все, что надо было, было в аннотациях. Другой вопрос, что ничего особо хитрого не было, но, тем не менее, эти проекты работают нормально и успешно выполняют свою задачу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)