java - 查找 EJB 组件的正确方法是什么?

标签 java eclipse glassfish-3 ejb-3.1

到目前为止,我已经尝试运行我的第一个 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 :gf-client.jar,不需要添加其他 JAR,正如 Glassfish 社区所推荐的

捕获异常:

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

另外两个问题:

  1. context.lookup("java:global:/componentAddress")context.loopup("mappedName") 它们之间有什么区别,何时使用?

  2. props.setProperty("org.omg.CORBA.ORBInitialHost", "192.168.1.100")props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost")

最佳答案

问题很简单,问题出在 glassfish 3.0 版本上,下载了最新版本 3.1.2,一切正常。

关于java - 查找 EJB 组件的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529783/

相关文章:

java - OSGI 外部配置器文件夹未加载

eclipse - 当自动化 Eclipse 的 "Export as Feature"时,Maven/Tycho 看不到我的插件

glassfish-3 - 如何将 glassfish 服务器的设置导出到另一个 glassfish 服务器?

jakarta-ee - 使用超时进行 EJB 调用

java - 从独立应用程序调用 glassfish ejb

java - Spring MVC 在每个请求之前检查 session

java html解析器不读取所有页面

java - 如何与其他开发者共享 Java 项目?

java - Hibernate:如何解决 java.lang.IncompatibleClassChangeError:

android - 无法安装我自己生成的 apk