• 一个简单的EJB-Session Bean实例


     一个简单的EJB-Session Bean实例
           从现在开始,我也要开始学习EJB了,原来虽然有所了解,一直还没有动手操作过,现在的项目时间不紧,可以好好学习一下。具体的概念什么的我这里就不多说,因为我想如果你需要知道的话,我说还说不全,你不如去网上搜搜,多得很。
           我用的开发IDE是Jdeveloper10.1.3,个人觉得这个东西非常的好使,并不比那些诸如MyEclipse之类的差,并且是Oracle公司发出来的,界面也美观,有很多的导航,以及示例演示,如果你需要可以去ORACLE的官方网站上下载。
           本人承诺,所发表的一切示例都是经过本人测试通过,才会拿出来的,你尽可以使用,如果调试不通,请检查你是的配置是否恰当。
           有需要交流的请与我联系:http://blog.csdn.net/fenglibing
           文件列表示图如下:
    HelloWorldSession
    package test.ejb.session;
    import javax.ejb.Remote;
    /**
     * 远程接口
     */
    @Remote
    public interface HelloWorldSession {
        String sayHello(String name);
    }
    HelloWorldSessionBean
    /**
     * 示例BEAN
     */
    package test.ejb.session;
    import javax.ejb.Stateless;
    @Stateless(name = "HelloWorldSession")
    public class
    HelloWorldSessionBean implements HelloWorldSession, HelloWorldSessionLocal {
        public HelloWorldSessionBean() {
        }
        public String sayHello(String name) {
            return "Hello " + name;
        }
        public String sayHelloLocal(String name) {
            return "Hello " + name;
        }
    }
    HelloWorldSessionLocal
    package test.ejb.session;
    import javax.ejb.Local;
    /**
     * 本地接口
     */
    @Local
    public interface HelloWorldSessionLocal {
        String sayHelloLocal(String name);
    }
    HelloWorldSessionClient
    package test.ejb.client;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import test.ejb.session.HelloWorldSession;
    public class HelloWorldSessionClient {
        public static void main(String [] args) {
            try {
                final Context context = getInitialContext();
                HelloWorldSession helloWorldSession = (HelloWorldSession)context.lookup("HelloWorldSession");
                // Call any of the Remote methods below to access the EJB
                // helloWorldSession.sayHello( name );
                System.out.println(helloWorldSession.sayHello("World"));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
     
        private static Context getInitialContext() throws NamingException {
            // Get InitialContext for Embedded OC4J
            // The embedded server must be running for lookups to succeed.
            return new InitialContext();
        }
    }
    Test.jsp
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="javax.naming.*, java.util.Properties"%>
    <%@ page import="test.ejb.client.*"%>
    <%@ page import="test.ejb.session.*"%>
    <html>
     <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
        <title>TestHelloWorld</title>
     </head>
     <body>
     <%
    InitialContext ctx=new InitialContext();//取得环境
    //下面这个取得名字,我需要说明一下,有很多书上都是这样的说的:
    //如果是用的JSP的调用,因为多半是和被调用的EJB是处在同一个虚拟机上,所以用
    //”名字/local”的方式,如果是java客户端调用,就采用”名字/remote”的方式,我看的例//子也是这样的,所以我用了好久的时间来调试,因为现在我所采用的是EJB3,所以调
    //用就不加Local或者是remote,直接引用远程接口的名字就OK了
        HelloWorldSession helloWorld=(HelloWorldSession)ctx.lookup("HelloWorldSession");
        out.println(helloWorld.sayHello("World"));
        %>
     </body>
    </html>
    另外再补充一点:就是我这里不管是在JAVA客户端还是在JSP客户端,如果想调用LOCAL接口都会被报错,我现在正在找这方面的原因,希望分享。 

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 相关阅读:
    codeforces 1438D,思路非常非常巧妙的构造题
    【Azure DevOps系列】开始第一个Azure DevOps应用
    .NET Core SameSite cookie问题
    解决Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
    feign.FeignException$NotFound: status 404 reading OrdersClient#isBuyCourse(String,String)
    feign.FeignException$NotFound: status 404 reading EduClient#getCourseInfoOrder
    谷粒学院查询全部课程不显示问题
    解决java.sql.SQLException: Zero date value prohibited
    使用Visual Studio Code代码编辑器给vue安装插件,结果导致node_modules里面的安装好的依赖丢失
    Redis报错: Caused by: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, ...
  • 原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10342238.html
Copyright © 2020-2023  润新知