Ciao a tutti esperti...
Salve a tutti. Premetto che adesso sto conoscendo gli EJB.
Ho preso un esempio per farlo girare sotto SAP Enterprise Portal.
codice:codice:Adder.java package adder; import java.rmi.RemoteException; import javax.ejb.EJBLocalObject; public interface Adder extends EJBLocalObject { public int add(int a, int b) throws RemoteException; } AdderBean.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package adder; import javax.ejb.*; public class AdderBean implements SessionBean { public void setSessionContext(SessionContext aContext) { } public void ejbActivate() { } public void ejbPassivate() { } public void ejbRemove() { } public int add(int a, int b) { System.out.println("AdderBean esegue"); return (a+b); } public void ejbCreate() { } } AdderHome.java package adder; import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBLocalHome; public interface AdderHome extends EJBLocalHome { Adder create() throws RemoteException,CreateException; } ejb-jar.xml <?xml version="1.0" encoding="UTF-8"?> <ejb-jar> <description>EJB JAR description</description> <display-name>EJB JAR</display-name> <enterprise-beans> <session> <ejb-name>AdderBean</ejb-name> <home>adder.AdderHome</home> <remote>adder.Adder</remote> <local-home>adder.AdderLocalHome</local-home> <local>adder.AdderLocal</local> <ejb-class>adder.AdderBean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Bean</transaction-type> </session> </enterprise-beans> </ejb-jar> ejb-j2ee-engine.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd"> <ejb-j2ee-engine> <enterprise-beans> <enterprise-bean> <ejb-name>AdderBean</ejb-name> <session-props/> </enterprise-bean> </enterprise-beans> </ejb-j2ee-engine>
Adesso ho creato Adder.jar.Fino qui il jar è creato correttamente
Poi nell'Enterprise Portal faccio riferimento a questo jar in più aggiungo una funzione che permette di chiamare l'ejb cioè
poi creo il PAR e faccio il deploy e mi da questo errore:codice:import java.util.Properties; import javax.naming.InitialContext; import adder.*; import com.sapportals.portal.prt.component.AbstractPortalComponent; import com.sapportals.portal.prt.component.IPortalComponentRequest; import com.sapportals.portal.prt.component.IPortalComponentResponse; public class UserInfoComponent extends AbstractPortalComponent { public void doContent( IPortalComponentRequest request, IPortalComponentResponse response) { try { // ottiene riferimento a JNDI //InitialContext ctx = new InitialContext(prop); InitialContext ctx = new InitialContext(); // ottiene riferimento alla home interface Object ref = ctx.lookup("AdderBean"); // casting AdderHome home = (AdderHome) ref; // crea il bean Adder adder = home.create(); // invoca il metodo del bean response.write("3 + 5 = " + adder.add(3, 5)); } catch (Exception e) { response.write("errore = " + e.getMessage()); } } }
errore = Object not found in lookup of AdderBean.
Riuscite ad aiutarmi a capire questo errore????Cosa sbaglio cioè non riesco a capire perchè non chiama AdderBean.
Ciauz

Rispondi quotando