我现在正在学习EJB,我在JBOSS中创建了一个简单的EJB示例并运行成功,以下是我的步骤:
创建FirstEjbBean实现FirstEjb接口,并标记EJB注解
@Remote
@Stateless
public class FirstEjbBean implements FirstEjb {
@Override
public String saySomething(String name) {
return "Hello, " + name;
}
}
在 MyEclipse 中创建一个名为“EjbClient”的 Java 项目,将 FirstEjb 接口导出为 *.jar 以及新的 Java 项目对其的引用
在Ejb中创建jndi.properties:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost
7.创建类FirstEjbClient.java
public class FirstEjbClient {
public static void main(String[] args) throws NamingException {
InitialContext context = new InitialContext();
FirstEjb ejb = (FirstEjb) context.lookup("FirstEjbBean/remote");
String something = ejb.saySomething("Jimmy.Chen");
System.out.println(something);
}
}
然后就可以成功访问EJB了。
问题是,我不知道如何在 websphere 中执行同样的操作。
有一些问题:
我在网上查了很多,但我找到的都是在websphere中配置数据源。
抱歉我的英语不好,希望有人能理解并提供一些帮助。
提前致谢!
吉米陈
你好,
试试这个:
Properties props= new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
props.setProperty(Context.PROVIDER_URL,"corbaloc:iiop:localhost:2809");
Context ctx = new InitialContext(props);
Object homeObject = ctx.lookup("some.package.MyEJBRemote");
MyEJBRemote myEJB = (MyEJBRemote) javax.rmi.PortableRemoteObject.narrow(homeObject, some.package.MyEJBRemote);
但是我不确定导入所需的 jar,因为您可以将 WebSphere Application Server X 运行时库添加到 Eclipse 中的构建路径
Eclipse 的 WAS 运行时位于 http://www.ibmdw.net/wasdev/
当您在 Eclipse 中创建 EJB 项目时,会创建一个 EJB 部署描述符。您必须在引用选项卡中添加所有 JNDI 资源。 您必须添加 websphere 运行时 JAR,就像添加任何其他 JAR 一样。