我正在研究EJB,我在JBOSS中创建了一个简单的EJB示例并成功运行,这是我的步骤:
Create FirstEjbBean实现了FirstEjb接口,并标记了EJB注释
@Remote
@Stateless
public class FirstEjbBean implements FirstEjb {
@Override
public String saySomething(String name) {
return "Hello, " + name;
}
}
在MyEclipse中创建Java项目名称“EjbClient”,将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中配置数据源。
抱歉我的英语不好,希望有人能理解并提供一些帮助。
提前致谢!
Jimmy.Chen
答案 0 :(得分:0)
您好,
试试这个:
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/
答案 1 :(得分:0)
在Eclipse中创建EJB项目时,会创建EJB部署描述符。您必须在引用选项卡中添加其中的所有JNDI资源。 您必须添加与添加任何其他JAR相同的websphere运行时JAR。