Ejb 如何在websphere中配置和查找JNDI?

Ejb 如何在websphere中配置和查找JNDI?,ejb,websphere,jndi,Ejb,Websphere,Jndi,我现在正在学习EJB,我在JBOSS中创建了一个简单的EJB示例并成功运行,以下是我的步骤: 在myeclipse中创建EJB项目 创建名为FirstEjb的接口 创建firstEJBean实现FirstEjb接口,并标记EJB注释 @Remote @Stateless public class FirstEjbBean implements FirstEjb { @Override public String saySometh

我现在正在学习EJB,我在JBOSS中创建了一个简单的EJB示例并成功运行,以下是我的步骤:

在myeclipse中创建EJB项目 创建名为FirstEjb的接口 创建firstEJBean实现FirstEjb接口,并标记EJB注释


    @Remote
    @Stateless
    public class FirstEjbBean implements FirstEjb {    
        @Override
        public String saySomething(String name) {
            return "Hello, " + name;
        }    
    }
然后我就可以成功地访问EJB了

问题是,我不知道如何在websphere中执行同样的操作

有一些问题:

部署EJB项目后,我是否需要在websphere中配置任何内容?像JNDI?? 我应该将哪些JAR导入到客户机项目中?这些JAR在websphere的哪个目录中? 我还需要jndi.properties吗?如果需要,如何编写? 我在互联网上搜索了很多,但我只找到了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,因为您可以在Eclipse中将websphereapplicationserverx运行时库添加到buildpath中
Eclipse的WAS运行时处于开启状态

在Eclipse中创建EJB项目时,将创建EJB部署描述符。您必须将所有JNDI资源添加到它的references选项卡中。 您必须添加与添加任何其他JAR相同的websphere运行时JAR

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);
    }
}
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);