如何为WebSphere 8.5编写EJB 3.1客户端?

时间:2014-07-22 07:19:57

标签: java-ee websphere ejb-3.1

在查找部署在WebSphere 8.5上的EJB 3.1时,我遇到了问题。

请建议我:

  1. 我需要在classpath中包含哪些库?
  2. 如何构建查找字符串?
  3. 是否需要在服务器端更改任何设置?
  4. 注意:我使用的是Eclipse IDE

2 个答案:

答案 0 :(得分:6)

试试这个:

  1. com.ibm.ws.ejb.thinclient_8.5.0.jarcom.ibm.ws.orb_8.5.0.jar个jar添加到客户端应用程序的类路径中。
  2. 通过运行createEJBStubs.sh脚本生成客户端存根。 在createEJBStubs.sh目录下找到<WAS_HOME>/bin脚本。
    语法:./createEJBStubs.sh <ejbJarName>.jar
  3. 将生成的jar添加到客户端应用程序的类路径中。
  4. JNDI提供自定义EJB名称,如下所示:
    打开WebSphere控制台,在左侧面板上单击Applications>All applications
    单击已部署的应用程序。
    点击Bind EJB Business下的Enterprise Java Bean Properties
    JNDI列下的EJB设置自定义JNDI name名称。例如customLookupString
  5. 示例客户端代码:

    public class WebSphereClient {
        public static void main(String[] args) {
            Properties props = new Properties();
            props.put(Context.INITIAL_CONTEXT_FACTORY,
                    "com.ibm.websphere.naming.WsnInitialContextFactory");
            props.put(javax.naming.Context.PROVIDER_URL, "iiop://localhost:2818");
            TestBeanRemote bean = null;
            Object obj;
            try {
                InitialContext ctx = new InitialContext(props);
                obj= ctx.lookup("customLookupString");
                if (obj instanceof TestBeanRemote) {
                    bean = (TestBeanRemote) obj;
                }
                System.out.println("Name : "+bean.getName());
            } catch (NamingException e) {
                e.printStackTrace();
            }
        }
    }
    

    以上代码和流程对我有用。

答案 1 :(得分:5)

查看此页面Running the IBM Thin Client for Enterprise JavaBeans (EJB) 了解更多详情。

  

我需要在classpath中包含哪些库?

您需要com.ibm.ws.ejb.thinclient_8.5.0.jar(位于app_server_root\runtimes)和endorsed_apis_8.5.0.jar(位于app_server_root \ runtimes \ endorsed中)。将endoresed jar复制到JAVA_JRE\lib\endorsed

  

如何构建查找字符串?

像这样调用您的应用程序:

<java_install_root>\bin\java  
-classpath com.ibm.ws.ejb.thinclient_8.5.0.jar;<list_of_your_application_jars_and_classes> 
-Djava.naming.provider.url=iiop://<your_application_server_machine_name>:<orbPort>
<fully_qualified_class_name_to_run>

如果您在服务器上启用了安全性并且需要SSL,则需要添加以下内容:

-Dcom.ibm.SSL.ConfigURL=file:///home/user1/ssl.client.props
-Dcom.ibm.CORBA.ConfigURL=file:///home/user1/sas.client.props

您可以在PROFILE_ROOT\properties

中的WebSphere安装文件中找到这些文件