阅读本文的前提条件是:
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中定义引用)的方式访问。
全球第一款网络点验钞机诞生在浙江温州 ,点钞机/网络点钞机,通过客户端维融金网卫士连接网络,云存储数据和网络验钞