weblogic ejb3 入门与提高(一) helloworld

本文介绍了如何在Weblogic 10中开始使用EJB3,包括前提条件、环境配置、项目框架搭建、相关文件编辑、Ant编译打包以及部署发布。教程以一个简单的HelloWorldLocalBean为例,展示了EJB3在Weblogic中的本地会话Bean使用和Servlet调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读本文的前提条件是:
 1.你必须有Java编程的基本能力,并能熟练使用servlet;
 2.同时要能熟练并多次安装过weblogic server,了解安装的一些基本常识;
 3.熟练使用Eclipse开发工具开发Java程序。


1.Weblogic 的版本

 我使用的weblogic版本是Workshop for WebLogic 10,weblogic是从WebLogic 10.0的版本开始完全支持EJB3的。可是在Bea的主页上下载,下载地址是[http://www.bea.com.cn/products/workshop/workshop2/index.jsp],下载需要注册一个帐号,登录了帐号才可以顺利下载试用版。

2.一些准备工作

 启动Workshop for WebLogic 10,其实就是Eclipse 3.2加入了Weblogic的一些插件,我除了用它启动Weblogic server以外,基本没有用到其它什么特别于Eclipse的功能,所以如果使用Eclipse 3.2也是一样的。

 安装完成后需要首先创建一个域主目录,这个过程比较简单,按默认创建就可以了。

 如果你安装的根目录是[D:/bea],那么你的服务器应该在[D:/bea/wlserver_10.0]。

 启动开发环境以后,第一件要做的事是创建一个服务器,在服务器视图中新建,其它基本安默认来,只是在设定域目录时,注意设置在[D:/bea/user_projects/domains/base_domain],[base_domain]是你创建的域的名称。

 系统安装的JRE版本要在[1.5]以上。

3.创建项目框架

 创建一个用户自定义库:
  [窗口]->[首选项]->[Java]->[构建路径]->[用户库],点击[新建],名字叫[weblogic]。选中[Weblogic],点击[添加外部Jar],将[D:/bea/wlserver_10.0/server/lib]下的所有jar包导入到用户库[weblogic]。

 新建一个普通的Java项目,需要导入两个库[系统jre库、用户自定义库weblogic],项目目录结构如下:
 [App]    应用程序主目录
 [App/META-INF]   应用程序配置文件目录
 [bin]    Eclipse编译输出目录,项目创建的时候,要设置一个源代码默认输出目录,就是它
 [Build]    编译、打包目录
 [EJB3]    EJB程序目录
 [EJB3/JavaSource]  EJB源代码目录 需要设置为源代码目录
 [EJB3/META-INF]   EJB程序配置文件目录
 [Java]    Java程序目录
 [Java/JavaSource]  Java程序源代码目录 需要设置为源代码目录
 [WebContext]   web程序目录
 [WebContext/JavaSource]  Web程序Java源代码目录 需要设置为源代码目录
 [WebContext/WEB-INF]  web程序配置文件目录

 下面是需要首先编辑的几个文件
 [App/META-INF/application.xml] 
 -----------------------------------------------------------------------
 <?xml version="1.0" encoding="UTF-8"?>
 <application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com /xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
  
  <!-- 引用程序名称 -->
  <display-name>EIB3Test</display-name>
  
  <!-- 应用程序描述 -->
  <description>EJB3 Test Application</description>
  
  <!-- EJB模块 -->
  <module>
   <!-- EJB模块Jar包 -->
   <ejb>ejb3test_ejb.jar</ejb>
  </module>

  <!-- WEB模块 -->
  <module>
   <web>
    <!-- web模块包 -->
    <web-uri>ejb3test_web.war</web-uri>
    <!-- web模块根 就是http://localhost:7001/ejb3test -->
    <context-root>/ejb3test</context-root>
   </web>
  </module>
 </application>
 -----------------------------------------------------------------------
  
 [WebContext/WEB-INF/web.xml]
 -----------------------------------------------------------------------
 <?xml version="1.0" encoding="UTF-8"?>

 <!-- version="2.4"这一部分不可以随便改动,改动容易造成发布错误 -->
 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <!-- web项目发布名称 -->
  <display-name>ejb3test</display-name>

  <!-- 默认文件列表 -->
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
   <welcome-file>index.html</welcome-file>
   <welcome-file>index.htm</welcome-file>
  </welcome-file-list>

 </web-app> -----------------------------------------------------------------------

 创建一个Ant编译文件。
 文件地址:[Build/build.xml]
 内容如下:
 -----------------------------------------------------------------------
 <?xml version="1.0" encoding="UTF-8"?>

 <project default="main" basedir="../">

  <!-- 项目名称 -->
  <property name="proName" value="ejb3test" />

  <!-- Bea Weblogic 安装目录 -->
  <property name="bea.home" value="D:/bea" />
  <property name="bea.server.lib" value="${bea.home}/wlserver_10.0/server/lib" />
  <property name="domain.name" value="base_domain" />

  <!-- JRE -->
  <property name="jre.home" value="D:/Java/jre1.5.0_12" />

  <!-- 编译目录 -->
  <property name="build" value="Build" />

  <!-- 指定输出目录 -->
  <property name="out" value="D:/out" />

  <!-- 编译库 -->
  <path id="classpath">

   <!-- JRE.lib -->
   <pathelement location="${jre.home}/lib" />
   <pathelement location="${jre.home}/lib/ext" />
   <fileset dir="${jre.home}/lib">
    <include name="*.jar" />
    <include name="ext/*.jar" />
   </fileset>

   <!-- JBossEJB3.lib -->
   <pathelement location="${bea.server.lib}" />
   <fileset dir="${bea.server.lib}">
    <include name="*.jar" />
   </fileset>

  </path>

  <!-- Java编译库 -->
  <path id="java">

   <!-- Java库 -->
   <fileset file="${build}/out/lib/${proName}_java.jar" />

  </path>

  <!-- EJB编译库 -->
  <path id="ejb">

   <!-- Java库 -->
   <fileset file="${build}/out/${proName}_ejb.jar" />

  </path>

  <!-- Java编译打包 -->
  <target name="java">

   <echo message="Java编译打包开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 编译 -->
   <javac srcdir="Java/JavaSource" destdir="${build}/java">
    <classpath refid="classpath" />
   </javac>

   <!-- 打包 -->
   <mkdir dir="${build}/out/lib" />
   <jar basedir="${build}/java" jarfile="${build}/out/lib/${proName}_java.jar" />

   <echo message="Java编译打包结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- EJB编译打包 -->
  <target name="ejb" depends="java">

   <echo message="EJB编译打包开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 编译 -->
   <javac srcdir="EJB3/JavaSource" destdir="${build}/ejb">
    <classpath refid="classpath" />
    <classpath refid="java" />
   </javac>

   <!-- 复制配置文件 -->
   <copy todir="${build}/ejb/META-INF">
    <fileset dir="EJB3/META-INF" />
   </copy>

   <!-- 打包 -->
   <jar basedir="${build}/ejb" jarfile="${build}/out/${proName}_ejb.jar">
    <manifest>
     <attribute name="Class-Path" value="lib/${proName}_java.jar" />
    </manifest>
   </jar>

   <echo message="EJB编译打包结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- Web编译打包 -->
  <target name="web" depends="ejb">

   <echo message="Web编译打包开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 复制web内容目录 -->
   <copy todir="${build}/web">
    <fileset dir="WebContext" />
   </copy>

   <!-- 编译Java源代码 -->
   <delete dir="${build}/web/WEB-INF/classes" />
   <mkdir dir="${build}/web/WEB-INF/classes" />
   <javac srcdir="${build}/web/JavaSource" destdir="${build}/web/WEB-INF/classes">
    <classpath refid="classpath" />
    <classpath refid="java" />
    <classpath refid="ejb" />
   </javac>

   <!-- 打包Java源代码 -->
   <delete dir="${build}/web/WEB-INF/lib" />
   <mkdir dir="${build}/web/WEB-INF/lib" />
   <jar basedir="${build}/web/WEB-INF/classes" jarfile="${build}/web/WEB-INF/lib/${proName}_servlet.jar" />

   <!-- 复制EJB包到Web库 -->
   <copy todir="${build}/web/WEB-INF/lib" file="${build}/out/${proName}_ejb.jar" />

   <!-- 打包web目录 -->
   <delete dir="${build}/web/JavaSource" />
   <delete dir="${build}/web/WEB-INF/classes" />
   <jar basedir="${build}/web" jarfile="${build}/out/${proName}_web.war">
    <manifest>
     <attribute name="Class-Path" value="lib/${proName}_java.jar" />
    </manifest>
   </jar>

   <echo message="Web编译打包结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- 企业包打包 -->
  <target name="ear" depends="web">

   <echo message="企业包打包开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 复制Java包、ejb包、web包 -->
   <copy todir="${build}/ear">
    <fileset dir="${build}/out">
     <include name="lib/${proName}_java.jar" />
     <include name="${proName}_ejb.jar" />
     <include name="${proName}_web.war" />
    </fileset>
   </copy>

   <!-- 复制配置文件 -->
   <copy todir="${build}/ear/META-INF">
    <fileset dir="App/META-INF" />
   </copy>

   <!-- 打包 -->
   <jar basedir="${build}/ear" jarfile="${build}/out/${proName}_ear.ear" />

   <echo message="企业包打包结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- 初始化 为编译初始化 -->
  <target name="init">

   <echo message="初始化开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 创建java编译目录 -->
   <mkdir dir="${build}/java" />

   <!-- 创建ejb编译目录 -->
   <mkdir dir="${build}/ejb" />

   <!-- 创建web编译目录 -->
   <mkdir dir="${build}/web" />

   <!-- 创建应用程序编译目录 -->
   <mkdir dir="${build}/ear" />

   <!-- 创建编译输出目录 -->
   <mkdir dir="${build}/out" />

   <echo message="初始化结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- 清理项目 清理项目中编译产生的文件和目录 -->
  <target name="clear">

   <echo message="清理项目开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 删除java编译目录 -->
   <delete dir="${build}/java" />

   <!-- 删除ejb编译目录 -->
   <delete dir="${build}/ejb" />

   <!-- 删除web编译目录 -->
   <delete dir="${build}/web" />

   <!-- 删除应用程序编译目录 -->
   <delete dir="${build}/ear" />

   <!-- 删除编译输出目录 -->
   <delete dir="${build}/out" />

   <echo message="清理项目结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

  <!-- 默认运行任务 编译、发布应用程序 -->
  <target name="main" depends="clear,init,ear">

   <echo message="编译打包项目开始 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

   <!-- 发布到自动编译的目录 -->
   <delete file="${bea.home}/user_projects/domains/${domain.name}/autodeploy/${proName}_ear.ear" />
   <copy todir="${bea.home}/user_projects/domains/${domain.name}/autodeploy">
    <fileset file="${build}/out/${proName}_ear.ear" />
   </copy>

   <!-- 输出到指定目录 -->
   <delete file="${out}/${proName}_ear.ear" />
   <copy todir="${out}">
    <fileset file="${build}/out/${proName}_ear.ear" />
   </copy>

   <echo message="编译打包项目结束 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" />

  </target>

 </project>
 -----------------------------------------------------------------------
 文件中需要注意的有以下几点:
 1.[<property name="bea.home" value="D:/bea" />],这里表示你安装的weblogic的路径,其中[value]的设定根据自己实际情况设定;
 2.[<property name="domain.name" value="base_domain" />],这里是你创建的域的名字,也是根据实际情况设定;
 3.[<property name="jre.home" value="D:/Java/jre1.5.0_12" />],JRE的路径,根据实际情况设定;
 4.[<property name="out" value="D:/out" />],一个指定的外部输出目录,要创建这个目录。

 如果你已经安装了Ant,可以创建一个Bat文件。
 文件地址:[Build/build.bat]
 内容如下:
 -----------------------------------------------------------------------
 F:
 cd F:/Epd/Workshop4WP/EJB3Test/Build
 %ANT_HOME%/bin/ant -file build.xml
 pause
 -----------------------------------------------------------------------
 根据实际情况,模仿编写。


4.创建EJB3

 创建一个EJB3现在已经变得非常容易,你只需要加一个接口,并定义业务方法,然后再创建一个类文件,实现改接口,并作一些标签,以表示它是EJB,就可以了!

 创建一个EJB的接口:
 文件路径:[EJB3/JavaSource/com/mh/ejb3/test/HelloWorldLocal.java]
 包:com.mh.ejb3.test
 接口名称:HelloWorldLocal
 内容如下
 -----------------------------------------------------------------------
 /**
  *
  */
 package com.mh.ejb3.test;

 /**
  * @author moshco zhu
  *
  */
 public interface HelloWorldLocal {

  public String sayHello();

 }

 -----------------------------------------------------------------------

 创建Bean类:
 文件路径:[EJB3/JavaSource/com/mh/ejb3/test/HelloWorldLocalBean.java]
 包:com.mh.ejb3.test
 类名:HelloWorldLocalBean
 EJB类型:无状态会话bean
 EJB实现接口类型:本地接口
 内容如下:
 -----------------------------------------------------------------------
 /**
  *
  */
 package com.mh.ejb3.test;

 import javax.ejb.Local;
 import javax.ejb.Stateless;

 /**
  * @author moshco zhu
  * @Stateless:表示无状态会话Bean
  * @Local(HelloWorldLocal.class):实现本地接口,括号中是表示实现的本地接口
  *
  */
 @Stateless
 @Local(HelloWorldLocal.class)
 public class HelloWorldLocalBean implements HelloWorldLocal {
  
  
  public String sayHello() {

   String strReult = "Hello,world!";

   return strReult;
  }

 }
 -----------------------------------------------------------------------

 修改文件[WebContext/WEB-INF/web.xml]
 -----------------------------------------------------------------------
 <?xml version="1.0" encoding="UTF-8"?>

 <!-- version="2.4"这一部分不可以顺便改动,改动容易造成发布错误 -->
 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <!-- web项目发布名称 -->
  <display-name>ejb3test</display-name>

  <!-- 默认文件列表 -->
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
   <welcome-file>index.html</welcome-file>
   <welcome-file>index.htm</welcome-file>
  </welcome-file-list>

  <!-- ----------------------- 新加的部分 -------------------------- -->
  <!-- 定义引用一个ejb3的本定接口 -->
  <ejb-local-ref>
   <!-- EJB的引用名称 -->
   <ejb-ref-name>HelloWorldLocalBean</ejb-ref-name>
   <ejb-ref-type>Session</ejb-ref-type>
   <!-- 因为是EJB3所有不能有这一部分 -->
   <!-- <local-home></local-home> -->
   <local>com.mh.ejb3.test.HelloWorldLocal</local>
   <ejb-link>ejb3test_ejb.jar#HelloWorldLocalBean</ejb-link>
  </ejb-local-ref>
  <!-- ----------------------- 新加的部分 -------------------------- -->

 </web-app>
 -----------------------------------------------------------------------
 因为我们使用的是本地会话Bean,本地会话Bean在同一个weblogic server中的web容器中使用,是需要这样引用一下的。记住,如果不在同一个weblogic server中的其它地方,是没有办法使用这个本地会话Bean的。


 创建一个Servlet,使用这个本地会话Bean。
 文件路径:[WebContext/JavaSource/com/mh/servlet/test/CommonSV.java]
 包:com.mh.servlet.test
 类名:CommonSV
 内容如下:
 -----------------------------------------------------------------------
 package com.mh.servlet.test;

 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Properties;

 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

 import com.mh.ejb3.test.HelloWorldLocal;

 public class CommonSV extends HttpServlet {

  @Override
  public void init() throws ServletException {
   // TODO 自动生成方法存根
   super.init();
  }

  @Override
  public void destroy() {
   // TODO 自动生成方法存根
   super.destroy();
  }

  @Override
  protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
   doWork(request, response);
  }

  @Override
  protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
   doWork(request, response);
  }

  /**
   * @描述:公共处理方法
   *
   * @param strJNDI
   * @return
   * @throws Excep
   */
  private void doWork(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

   // 获取输出对象
   request.setCharacterEncoding("UTF-8");
   response.setCharacterEncoding("UTF-8"); // 设置输出编码
   response.setContentType("text/html;charset=UTF-8");
   PrintWriter out = response.getWriter();
   // 结果值
   String message = "Test:<br><hr size='1'>";

   try {

    // 获取参数
    String strPara = (String) request.getParameter("dowith");

    // 处理运行
    if (strPara != null && strPara.equals("HelloworldLocal")) {
     // 通过JNDI获取对象
     HelloWorldLocal helloLocal = (HelloWorldLocal) getEJBObject("java:comp/env/HelloWorldLocalBean");
     message += helloLocal.sayHello();
    }

   } catch (Exception e) {
    e.printStackTrace();
    message += e.toString();
   } finally {
   }

   // 输出
   out.print(message);
   out.flush();
   out.close();
  }

  /**
   * @功能 获取EJB对象
   *
   * @param strJNDI
   * @return
   * @throws Exception
   */
  private Object getEJBObject(String strJNDI) throws Exception {

   // 创建属性对象
   Properties props = new Properties();
   props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
     "weblogic.jndi.WLInitialContextFactory");
   props.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");

   // 创建上下文环境对象
   InitialContext ctx;
   ctx = new InitialContext(props);

   // 本地接口
   Object oEJB = ctx.lookup(strJNDI);

   // 返回函数值
   return oEJB;
  }

 }
 -----------------------------------------------------------------------
 注意上面引用本地会话Bean的JNDI是这样[java:comp/env/HelloWorldLocalBean]的,这个JNDI在服务器的JNDI树中是找不到的。这里的[HelloWorldLocalBean]与[web.xml]中的[<ejb-ref-name>HelloWorldLocalBean</ejb-ref-name>]保持一致。
 
 关于JNDI树的查看:
 1.启动weblogic server;
 2.打开浏览器,进入网址[http://localhost:7001/console/login/LoginForm.jsp],输入你创建域的时候输入的用户名和密码;
 3.选择[域结构]->[环境]->[服务器],点击服务器名称,进入服务器管理页面,点击[查看JNDI树],弹出的窗体显示的是服务器所有的JNDI。

 
 修改文件[WebContext/WEB-INF/web.xml],定义刚创建的servlet。
 -----------------------------------------------------------------------
 <?xml version="1.0" encoding="UTF-8"?>

 <!-- version="2.4"这一部分不可以顺便改动,改动容易造成发布错误 -->
 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

  <!-- web项目发布名称 -->
  <display-name>ejb3test</display-name>

  <!-- 默认文件列表 -->
  <welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
   <welcome-file>index.html</welcome-file>
   <welcome-file>index.htm</welcome-file>
  </welcome-file-list>
  
  <!-- ----------------------- 新加的部分 -------------------------- -->
  <!-- 定义一个Servlet -->
  <servlet>
   <servlet-name>CommonSV</servlet-name>
   <servlet-class>com.mh.servlet.test.CommonSV</servlet-class>
   <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
   <servlet-name>CommonSV</servlet-name>
   <url-pattern>/sv/CommonSV.do</url-pattern>
  </servlet-mapping>
  <!-- ----------------------- 新加的部分 -------------------------- -->

  <!-- 定义引用一个ejb3的本定接口 -->
  <ejb-local-ref>
   <!-- EJB的引用名称 -->
   <ejb-ref-name>HelloWorldLocalBean</ejb-ref-name>
   <ejb-ref-type>Session</ejb-ref-type>
   <!-- 因为是EJB3所以不能有这一部分 -->
   <!-- <local-home></local-home> -->
   <local>com.mh.ejb3.test.HelloWorldLocal</local>
   <ejb-link>ejb3test_ejb.jar#HelloWorldLocalBean</ejb-link>
  </ejb-local-ref>

 </web-app>
 -----------------------------------------------------------------------

 创建一个web默认的jsp欢迎页面。
 文件路径:[WebContext/index.jsp]
 内容如下:
 -----------------------------------------------------------------------
 <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
 <title>EJB3测试</title>
 </head>
 <body>


 <p>
 <center><a href="http://localhost:7001/console/" target="_blank">weblogic控制</a></center>
 </p>
 <hr size="1">
 <p>
 <center><a href="<%=request.getContextPath() %>/sv/CommonSV.do?dowith=HelloworldLocal" target="_blank">EJB3测试:本地会话Bean</a></center>
 </p>


 </body>
 </html>
 -----------------------------------------------------------------------


5.编译发布程序

 打开文件[Build/build.xml],在[大纲]视图中,选中[project],右键选择[运行方式]->[Ant构建],等一会weblogic server会自动发布程序。你可以通过下面的地址访问[http://localhost:7001/ejb3test/]。

 需要注意的是,你在发布程序的时候,记住不要在[控制中心](http://localhost:7001/console),让它处于[锁定编辑]状态,如果处于锁定编辑状态,系统自动发布程序会报告错误,发布失败。

6.总结与思考

 1.EJB3大量使用注释定义,减少配置文件,大大简化了开发,这是它最明显的特点;

 2.EJB3在weblogic中,编写本地会话Bean,在同一个weblogic server的低版本(web.xml的版本低于2.5)servlet中访问不能使用依赖注入的的方式,就是下面这样:
 -----------------------------------------------
 @EJB
 private HelloWorld helloWorldLocal;
 -----------------------------------------------
 关于这个问题,会在下一编文档中详细介绍。

 3.EJB3在weblogic中,访问本地会话Bean,只有两种可能:同一个weblogic server的servlet访问,需要在web.xml中引用定义;或者,同一个容器中的其它会话Bean使用依赖注入(或在配置文件ejb-jar.xml中定义引用)的方式访问。

 


全球第一款网络点验钞机诞生在浙江温州 ,点钞机/网络点钞机,通过客户端维融金网卫士连接网络,云存储数据和网络验钞

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值