打印

Solaris操作系统上搭建Java EE开发环境

本帖已经被作者加入个人空间

3.4安装Glassfish

( 1 )将我们安装所需的 Glassfish 的“ jar ”包改名为“ glassfish.jar ”并拷贝到需要安装的目录下,笔者在这里依然是安装在 Solaris 系统根目录下,读者可根据自己的需求选择安装目录。

( 2 )在“终端”窗口键入如下命令

java –Xmx256m –jar classfish.jar

命令执行后,将弹出如图 3-4-1 所示对话框

图 3-4-1

( 3 )使用鼠标将对话框的滚动条下来的底部时“ Accept ”按钮便从灰色变为黑色,如图 3-4-2 所示

图 3-4-2

( 4 )点击“ Accept ”键,“ glassfish ”将继续在“终端”窗口内进行安装,直到安装完成,如图 3-4-3 所示

图 3-4-3

( 5 ) Glassfish 安装完成后将会在所指定的目录下生成一个“ glassfish ”文件夹和“ input.properties ”文件,如图 3-4-4 所示

图 3-4-4

到这里 Glassfish 的安装并没有结束,读者可根据如下命令查看“ glassfish ”文件夹下的内容,读者会发现当前目录下没有“ bin ”文件夹

cd \glassfish

ls

命令执行后,如图 3-4-5 所示

图 3-4-5

( 6 )在“终端”中键入如下命令 , 进一步安装 Glassfish

cd \glassfish

ant –f setup.xml

命令执行后,如图 3-4-6 所示

图 3-4-6

到此,我们对 Glassfish 程序的安装就算结束,但 Glassfish 还不能正常的运行我们还需对 Glassfish 的环境变量进行配置。

( 7 )在系统根目录下找到“ etc ”文件夹中的“ profile ”文件,在其中添加如下内容

CLASSFISH_HOME=/glassfish

export CLASSFISH_HOME

在“ PATH ”中加入如下内容 , 用“ : ”与前后隔开,如图 3-4-7 所示。

$ CLASSFISH_HOME/bin

图 3-4-7

( 8 )保存重启后后,我们在“终端”中键入如下命令,来启动 Glassfish 服务器

cd /glassfish/bin

asadmin start-domain

命令执行后如图 3-4-8 所示

图 3-4-8

到此,我们便成功的启动了 Glassfish 服务器,下面我们进一步进行验证

( 9 )打开浏览器,在地址栏输入“ http://localhost:4848 ” ,点击“ Enter ”便进入 Glassfish 服务器的登陆页面如图 3-4-9 所示

图 3-4-9

( 10 )输入默认用户名和密码“ admin/adminadmin ”,点击登陆便进入如图 3-4-10 所示页面

图 3-4-10

( 11 )在“终端”中键入如下命令关闭服务器,这时我们在刷新浏览器将会出现如图 3-4-11 所示

asadmin stop-domain

图 3-4-11

自此,我们便成功的在 Solaris 系统下安装并部署完成了 Glassfish
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

3.5 Solaris下GlassFish中EJB的开发

在系统根目录下新建一个名为“ hello-ejb ”的文件夹,下面我们来在此文件夹下开发我们的 EJB 程序

( 1 )在“ hello-ejb ”文件夹下新建一个 Hellobean.java 文件编写业务方法,其代码如下

package ejbtest;

import javax.ejb.*;

/* Stateless Session Bean. 这个 Bean 只有一个业务方法 , 输出一个字符串 .*/

@Stateless

public class HelloBean implements HelloRemote{

/* 业务方法 */

public String sayHello(){ return " 欢迎来到 EJB 世界! ";}}

( 2 )在“ hello-ejb ”文件夹下新建一个 Hello.java 文件,编写业务接口,其代码如下

package ejbtest;

import javax.ejb.*;

// 业务接口,客户端通过这个接口调用 EJB 对象,实现相应的功能。

public interface Hello{public String sayHello();}

( 3 )在“ hello-ejb ”文件夹下新建一个 HelloRemote.java 文件,编写远程接口,其代码如下

package ejbtest;

import javax.ejb.*;

/* 远程接口,客户端通过这个接口调用 EJB 对象 */

@Remote

public interface HelloRemote extends Hello{ }

( 4 )成功编译完以上 Java 文件后,下面我们来开发 Servlet 中通过远程方式调用 EJB 的方法,在“ hello-ejb ”文件夹下新建一个 TestEjbServletRemote.java 文件,其代码如下

package ejbtest;

import java.io.*;

import java.util.*;

import javax.naming.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.rmi.*;

public class TestEjbServletRemote extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws IOException {

response.setContentType("text/html;charset=GBK");

PrintWriter out = response.getWriter();

out.println("<html><head><title>”+

"Servlet 中调用 Ejb 中的方法—远程方式 </title></head><body>");

try{

Context initial = new InitialContext();

Hello hello=(Hello)initial.lookup("ejbtest.HelloRemote");

String say = hello.sayHello[[egg]];

out.println("************************************<br>");

out.println("EJB 调用结果: "+

"<b><font color=red>"+say+"</font></b><br>");

out.println("************************************");

out.println("</b><h3>"+

" 恭喜你 , 你已经成功调用 EJB!!!</h3></body></html>");

}catch (Exception ex) {

out.println("**** 出现例外!,重新调试! *****");

out.println(ex);}

}

}

( 5 )编译完以上四个文件后,再在“ hello-ejb ”文件夹下新建一个“ bean ”文件夹,并将“ Hellobean.java ”、“ Hello.java ”和“ HelloRemote.java ”三个文件放入“ bean ”文件夹中

( 6 )在“ hello-ejb ”文件夹下新建一个“ ejbtest ”文件夹,将我们刚才编译“ Hellobean.java ”、“ Hello.java ”和“ HelloRemote.java ”后所生成的“ .class ”文件放下入“ ejbtest ”文件夹

( 7 )在“ bean ”文件夹下新建一个“ MATA-INF ”文件夹

( 8 )使用如下命令将“ ejbtest ”文件夹和“ MATA-INF ”文件夹打成一个“ hello.jar ”的包,如图 3-5-1 所示

cd /hello-ejb/bean

jar cvf hello.jar META-INF ejbtest



图 3-5-1

命令执行后我们会看到在“ bean ”文件夹下会多一个“ hello.jar ”的文件,如图 3-5-2 所示


图 3-5-2

( 9 )在 “ hello-ejb ”文件夹下新建一个“ war ”文件夹,并将“ TestEjbServletRemote.java ”文件放入“ war ”文件夹

( 10 )在“ war ”文件夹下新建一个“ ejbtest ”文件夹,将我们刚才编译“ TestEjbServletRemote.java ” 后所生成的“ .class ”文件放下入“ ejbtest ”文件夹

( 11 )在“ war ”文件夹下新建一个“ web_war ”文件夹

(12) 在“ web_war ”文件夹下新建一个“ WEB-INF ”文件夹

(13) 在“ WEB-INF ”文件夹下新建一个“ lib ”文件夹,并将“ bean ”文件夹下“ hello.jar ”拷贝进来,如图 3-5-3 所示

图 3-5-3

( 14 )在“ WEB-INF ”文件夹下新建一个“ classes ”文件夹,并将“ war ”文件夹下的“ ejbtest ”文件夹拷贝一份放入其中

( 15 )在“ WEB-INF ”文件夹下新建一个“ sun-web.xml ”文件其代码如下

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">

<sun-web-app><context-root>/hello</context-root></sun-web-app>

( 16 )在“ WEB-INF ”文件夹下新建一个“ web.xml ”文件其代码如下

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"

"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app><display-name>HelloApp</display-name>

<servlet>

<servlet-name>TestEjbServletRemote</servlet-name>

<servlet-class>ejbtest.TestEjbServletRemote</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>TestEjbServletRemote</servlet-name>

<url-pattern>/TestEjbServletRemote</url-pattern>

</servlet-mapping>

<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>

</web-app>

创建完成后如图 3-5-4 所示

图 3-5-4

( 17 )回到“ web_war ”文件夹下新建一个“ index.jsp ”文件 , 其代码如下

<%@ page contentType="text/html;charset=GBK" %>

<html>

<head><title>EJB 简介 </title></head>

<body>

<a href="TestEjbServletRemote" target="Blank1">

远程调用— TestEjbServletRemote</a><br/>

</body>

</html>

( 18 )使用如下命令将“ web_war ”文件夹和“ index.jsp ”文件打成一个“ hellotest.war ”包,如图 3-5-5 所示

cd /hello-ejb/war/web_war

jar cvf hellotest.war WEB-INF index.jsp

图 3-5-5

命令执行后我们会看到在“ bean ”文件夹下会多一个“ hellotest.war ”的文件,如图 3-5-6 所示

图 3-5-6

( 19 )为了方便部署,笔者将“ bean ”文件夹下的“ hello.jar ”和“ war ”文件夹下的“ hellotest.war ”拷贝到的系统根目录,如图 3-5-7 所示

图 3-5-7

( 20 )启动 GlassFish ,打开浏览器,登入 Glassfish 管理帐户后,点击页面左侧的“应用客户机模块”,在右侧窗口处单击“部署”如图 3-5-8

图 3-5-8

( 21 )选中“可以从 Application Server 访问的本地打包文件或目录”,使用“浏览文件…”找到我们刚才所打的“ hello.jar ” 如图 3-5-9

图 3-5-9

( 22 )单击页面左上角的“确定”便会出现如图 3-5-10 所示页面,我们可以看到我们所部署的“ hello.jar ”文件

图 3-5-10

( 23 )同样的方法,我们在“ Web 应用程序”中部署我们的“ hellotest.war ”文件,部署完毕后如图 3-5-11 所示

图 3-5-11

( 24 )点击打开一个新的浏览器,在地址栏键入“ http://localhost:8080/hellotest ”便会出现如图 3-5-12 所示页面

图 3-5-12

( 25 )点击网页中的超链接我们便可以进入如图 3-5-13 所示页面

图 3-5-13

自此,我们基于 Solaris 下 GlassFish 中 EJB 的开发完成。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

4.1下载Mysql

Mysql 是一个精巧的 SQL 数据库管理系统,由于它的强大功能、灵活性、丰富的应用编程接口( API )以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐。

如今我们所使用的 Mysql 分为两个版本,分别是社区版和企业版,当然,使用 Mysql 的企业版是要收取一定的费用的,在这里我们针对免费的社区版来进行操作,具体步骤如下:

( 1 )在浏览器地址栏输入“ http://www.mysql.com/ ”,按“ Enter ”键即可进入如图 4-1-1 所示的页面。

图 4-1-1

( 2 )在当前页面下点击页面上方的“ Developer Zone ”,进入图 4-1-2 所示页面,单击在网页右侧的“ More Downloads ”

图 4-1-2

( 3 )进入如图 4-1-3 所示页面,点击网页中的“ Download ”选项

图 4-1-3

( 4 )在所打开网页中提供了很多适合不同平台的 Mysql 版本,在这里我们选择适合于 Solaris 下的版本,点击网页中的“ Solaris (TAR packages) ”项,如图 4-1-4 所示

图 4-1-4

( 5 )进入如图 4-1-5 所示页面,选择相应版本后单击网页右侧对应的“ Pick a mirror ”选择镜像下载我们所需的 Mysql 版本。

图 4-1-5

提示:在这里读者需要注意的是 Solaris10 ( 32-bit )版和 Solaris10 ( 64-bit )版的区别, Solaris10 ( 64-bit )版,必须在 CPU 和操作系统本身都是 64-bit 时才可以使用,笔者在这里使用的是 32-bit 版的,读者可更具情况自己选择。

( 6 )下载 Mysql 时,我们还需进行相应的注册与登陆才能成功下载 Mysql ,如图 4-1-6 所示。

图 4-1-6

( 7 )注册登陆成功后便会进入如图 4-1-7 所示页面,我们只需选择相应国家的镜像站并单击其后的“ HTTP ”或“ FTP ”便可以开始下载了。

图 4-1-7

( 8 )下载后将文件“ mysql-5.1.22-rc-solaris10-i386.tar.gz ”保存到系统根目录下。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

4.2安装Mysql

下面介绍在 Solaris 操作系统下安装 Mysql 的过程。

( 1 )在终端中键入如下命令,对已下载的“ mysql-5.1.22-rc-solaris10-i386.tar.gz ”文件进行解压,其运行结果如图 4-2-1 所示。

gunzip mysql-5.1.22-rc-solaris10-i386.tar.gz

图 4-2-1

提示:这里笔者将“ mysql-5.1.22-rc-solaris10-i386.tar.gz ”文件放在系统根目录( / )下并对其进行操作,读者可根据自己的需要选择其他目录。

( 2 )命令执行后在根目录下可以看到解压后的“ mysql-5.1.22-rc-solaris10-i386.tar ”文件,如图 4-2-2 所示。

图 4-2-2

( 3 )在终端键入如下命令,对解压好的“ mysql-5.1.22-rc-solaris10-i386.tar ”文件进行解包处理,其过程如图 4-2-3 所示。

gtar –xvf mysql-5.1.22-rc-solaris10-i386.tar

图 4-2-3

( 4 )命令执行后将在系统根目录下生成名称为“ mysql-5.1.22-rc-solaris10-i386 ” 的文件夹 ,如图 4-2-4 所示。

图 4-2-4

( 5 )在终端键入如下命令添加名称为“ mysql ”的组,如图 4-2-5 所示。

groupadd mysql

图 4-2-5

( 6 )在终端键入如下命令在“ mysql ”组中添加名称为“ mysql ”的用户,如图 4-2-6 所示。

useradd –g mysql mysql

图 4-2-6

( 7 )在终端键入如下命令,对 Mysql 进行安装,命令执行过程如图 4-2-7 所示。

cd / mysql-5.1.22-rc-solaris10-i386/scripts

mysql_install_db --user=mysql

图 4-2-7

提示:第一条命令进入到安装脚本文件“ mysql_install_db ”所在的目录“ / mysql-5.1.22-rc-solaris10-i386/scripts ”,第二条命令以用户 mysql 执行安装脚本“ mysql_install_db ”。

( 8 )在终端键入如下命令,启动 MySQL 服务器进程,其执行过程如图 4-2-8 所示。

/user/sfw/sbin/mysqld --user=mysql

图 4-2-8

( 9 )接着就可以在其他终端键入如下命令来启动 Mysql 客户端程序了。

mysql

( 10 )上述命令执行后如图 4-2-9 所示,这时就进入了 MySQL 的命令行环境,在此环境下可以执行 SQL 语句及其他管理命令,对数据库进行操作与管理。

图 4-2-9
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

4.3 Solaris下MySQL的基本操作

下面我们在 Mysql 数据库中建立名称为“ Student ”的数据表,并对其进行“添加”,“查看”,“修改”,“删除”记录的操作,具体操作步骤如下:

( 1 )使用如下命令,进入到“ test ”数据库,其运行结果如图 4-3-1 所示。

use test

图 4-3-1

提示:在刚进入 MySQL 环境的情况下,没有任何数据库在使用状态,必须使用“ use < 数据库名 > ”指定使用特定的数据库。

( 2 )创建一个“ Student ”的基本表,在终端中键入如下 SQL 语句。

create table Student

(

sid varchar(20),

sname varchar(20),

sage int,

sclass varchar(30)

);

( 3 )语句执行后如图 4-3-2 所示,表示成功创建了“ Student ”表

图 4-3-2

( 3 )在终端键入如下 SQL 语句,使用“ insert ”语句向数据库中添加五条符合“ Student ”表结构的记录,其结果如图 4-3-3 所示。

insert into Student values ( '10001', 'John', 23, 'class1' );

insert into Student values ( '10002', 'Tom', 22, 'class2' );

insert into Student values ( '10003', 'Jiessie', 19, 'class4' );

insert into Student values ( '10004', 'andrew', 21, 'class3' );

insert into Student values ( '10005', 'brian', 22, 'class2' );

图 4-3-3

( 4 )在终端键入如下 SQL 语句,对插入的记录进行检索,其执行结果如图 4-3-4 所示。

select sid,sname,sage,sclass from Student;

图 4-3-4

( 5 )在终端键入如下 SQL 语句,对插入的记录进行修改,同时使用“ select ”语句来查看我们的修改是否成功,其执行结果如图 4-3-5 所示。

update Student set sid = '10010' where sid = 10001;

select sid, sname, sage ,sclass from Student;

图 4-3-5

提示:从图中可以看出,记录成功地进行了修改。

( 6 )在终端键入如下 SQL 语句,对插入的记录进行删除,同时使用“ select ”语句来查看我们的删除是否成功,其执行结果如图 4-3-6 所示。

delete from student where sid=10001;

select sid, sname, sage, sclass from Student;

图 4-3-6

提示:从图中可以看出,记录成功地进行了删除。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

5、Solaris下与数据库交互简单Web应用的开发

下面我们通过一个 Solaris 下与 MySQL 数据库交互的 Web 应用的例子,来进一步了解 Solaris 下 Mysql 与 Java 的组合开发。本案例的基本运行功能如下。

功能一 :当没有输入检索内容,或检索内容不存在时,页面将显示错误信息,如图 5-1 所示。

图 5-1

功能二 :当选择“按照图书 ISBN 号进行检索”时,输入相应的 ISBN 号点击“检索”按钮,将会得到所要检索的图书内容,如图 5-2 所示。

图 5-2

功能三 :当选择“按书名进行检索”时,输入相应的书名,点击“检索”按钮,将会得到所要检索的图书信息,如图 5-3 所示。

图 5-3

提示:本案例中的按书名检索是带有模糊查询功能的,例如上图中在检索框中输入“ J ”点击“检索”按钮,便会得到如上图所示的检索结果。

功能四 :当选择“按作者进行检索”时,输入相应的作者名,点击“检索”按钮,将会得到所要检索的图书信息,如图 5-4 所示。(按作者进行检索也实现了模糊查询功能)。

图 5-4

功能五 :当鼠标移到所要检索的图书时,当前的图书信息将会高亮,方便用户查看,如图 5-5 所示。

图 5-5

前面的几幅图给出了案例运行的情况,下面的图 5-6 给出了案例的基本架构。

图 5-6

从图中可以看出本案例主要分为四个部件: 用于负责与用户交互的 JSP 页面、核心控制器 Servlet 、业务 JavaBean 、 MySQL 数据库。 下面详细介绍本案例的开发,主要分以下几个部分进行,如下所列:

l 数据库表的创建及记录的插入

l MySQL JDBC 驱动 jar 包的下载

l JSP 页面的开发

l 业务 JavaBean 的开发

l 控制器 Servlet 的开发

l 程序的部署运行
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!