Пытались запустить мой первый проект EJB на пару дней. Мой проект EJB в настоящее время имеет этот исходный код:Каков правильный способ поиска EJB-компонента?
package calc;
import javax.ejb.Remote;
@Remote
public interface SessionBeanRemote {
public int add(int a,int b);
}
package calc;
import javax.ejb.Stateless;
@Stateless(name="MySessionBean",mappedName="myCalculator")
public class SessionBean implements SessionBeanRemote {
public int add(int a,int b){
return a +b;
}
}
Во-вторых, Есть еще один простой Java проект, в котором я могу назвать EJB компонент:
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.
SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ctx = new InitialContext(props);
SessionBeanRemote bean = (SessionBeanRemote) ctx.lookup("myCalculator");
int result = bean.add(3, 4);
System.out.println(result);
ctx.close();
JAR используется: гс-client.jar, нет необходимости добавлять другие, как Glassfish JAR-сообщества оценили
Пойманное:
java.lang.NoSuchMethodError: com.sun.corba.ee.spi.orbutil.fsm.FSMImpl.(Lcom/sun/corba/ee/spi/orbutil/fsm/StateEngine;Lcom/sun/corba/ee/spi/orbutil/fsm/State;Z)V
2 OT ее вопросы:
context.lookup("java:global:/componentAddress")
противcontext.loopup("mappedName")
чем разница между ними, когда использовать каждый?props.setProperty("org.omg.CORBA.ORBInitialHost", "192.168.1.100")
противprops.setProperty("org.omg.CORBA.ORBInitialHost", "localhost")
Существует довольно много дискуссий по этому вопросу. Вы должны будете найти свой ответ: http://valery-lavrov.com/blog/2012/05/15/glassfish-3-ejb-3-1-and-standalone-client/ –
@SamiKorhonen Я боюсь, все равно получите java.lang.NoSuchMethodError – Rehme
И вы используете appserv-rt.jar в соответствии с инструкциями? –