【WebLogic使用】

2018-03-01 11:23:09来源:oschina作者:Zzzz_WP人点击

分享
目录

1.WebLogic的下载与安装


2.在Eclipse中添加WebLogic


3.WebLogic配置jndi数据源


4.使用WebLogic部署Web应用


5.WebLogic创建虚拟主机和绑域名


1.WebLogic的下载与安装

一、WebLogic的介绍WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic Server 9.0是迄今为止发布的最卓越的BEA应用服务器。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。完全遵循J2EE 1.4规范。WebLogic与Tomcat的区别:WebLogic更加强大。weblogic是j2ee的应用服务器(application server),包括ejb ,jsp,servlet,jms等等,全能型的。是商业软件里排名第一的容器(JSP、servlet、EJB等),并提供其他如JAVA编辑等工具,是一个综合的开发及运行环境。WebLogic应该是J2EE Container(Web Container + EJB Container + XXX规范),而Tomcat只能算Web Container,是官方指定的JSP&Servlet容器。只实现了JSP/Servlet的相关规范,不支持EJB。不过Tomcat配合jboss和apache可以实现j2ee应用服务器功能二、WebLogic下载 来到Oracle的WebLogic Server主页: http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html 点击Downloads: 进入Downloads界面之后,点击Download file进行下载: 注意: (1)别忘记点击上面的“同意”条款。 (2)点击下拉框选择下载的版本,分别为简版/普通和完全版。 我们这里选择下载的是Generic版本。大家可以根据自己的需要选择下载。如果Oracle抽了,大家去这里下载12.2.3的版本: https://pan.baidu.com/share/link?shareid=2935789172&uk=1493614172&fid=1093830637966671我们下载完毕之后,会有一个压缩包: 三、WebLogic安装 将我们下载的压缩包解压: 打开目录中的Disk/install安装目录,找到名为ng.cmd的脚本文件: 双击打开脚本文件,弹出一个黑色的控制台:




(亲测 12213版本直接在dos窗口进行安装不会出现下面的安装界面)


稍等片刻,就会出现WebLogic的安装界面: 我们接下来按照以下步骤进行安装: 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“安装” 点击“下一步” 点击完成,WebLogic就安装完毕了。接下来会弹出WebLogic的配置界面。三、WebLogic的配置 安装完毕之后,会弹出配置窗口,我们按照以下操作进行配置: 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“下一步” 点击“创建”




点击“下一步” 看到完成界面,就说明我们的WebLogic的安装与配置都已经完成了。四、简单操作WebLogic 找到我们刚才安装的WebLogic的所在目录: 打开/user_projects/domains/base_domain目录: 点击该目录下的startWebLogic.cmd脚本,运行WebLogic。 我们在网页浏览器中输入"http://localhost:7001/console"地址, 就可以访问WebLogic的控制台了: 稍等一会之后,可以看到登陆界面: 输入我们之前填写的管理员的账号密码,登录到WebLogic管理系统中: 点击登录之后,可以看到管理界面: 至此,我们的WebLogic的安装与配置就讲解完毕。


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


2.在Eclipse中添加WebLogic

打开我们的Eclipse,这里我使用的是MyEclipse2014。 在上面的选项栏中,点击window,选择Preferences: 之后找到MyEclipse-->Server-->WebLogic的配置选择: 然后进行以下配置:




接下来,打开Server视图: 可以看到我们的WebLogic的图标,静静的躺在其它服务器中间:


这就说明我们在Eclipse中配置WebLogic成功啦!


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


3.WebLogic配置jndi数据源

一、什么是jndi数据源 JNDI是Java命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一。我们平时开发web程序的时候,在连接数据库的时候,往往会编写一个连接数据库的类, 例如连接Mysql的类:


package cn.edu.hpu.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB {
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
//定义mysql的数据库连接地址:
public static final String DBDURL = "jdbc:mysql://localhost:3306/iqweb" ;
//mysql数据库的连接用户名
public static final String DBUSER = "root" ;
//mysql数据库的连接密码
public static final String DBPASS = "1234" ;static{
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}public static Connection getConnection(){
Connection conn=null;
try {
conn=DriverManager.getConnection(DBDURL,DBUSER,DBPASS);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}public static void close(ResultSet rs,Statement st,Connection conn){

try {if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

} public static void close(Statement st,Connection conn){
close(null,st,conn);
}
}

可以看到,我们的数据库的驱动名,数据库名称,账号和密码都是通过“硬编码”写死在 程序里的。一旦我们的项目需要数据迁移,或者更换数据库的时候,我们就要停止应用,在代码中 修改数据库的连接信息,这样做非常繁琐和不安全。即使不更换数据库,我们在改变数据库的最大 连接数和最小连接数,以及数据库的其它配置等等,都需要在代码中进行修改,这十分不友好。我们需要一种外部的数据源,来指定我们的应用程序来链接数据库,对此,我们的应用程序不必 关心数据库的配置,数据库的配置交由独立的模块管理和配置。近年来,Web开发中涌现了许多框架,如hibernate/Mybatis/Spring,使用他们,可以通过 “数据库连接池”来管理数据库的链接和配置:



















并且把数据库配置单独放置在porperties配置文件中: 这样做就在应用层实现了数据库配置信息独立的机制。这样会使应用程序的数据库配置更加灵活。而我们的WebLogic服务器,拥有绑定Jndi数据源的功能,也就是服务器来对应用程序的数据库配置 进行托管,应用程序只需要在其应用代码中制定使用jndi模式链接WebLogic的数据源信息即可。 当需要修改数据库信息的时候,根本不需要动应用程序的东西,只需要调整WebLogic的jndi数据源 中的数据库配置信息即可。也即是说,WebLogic的jndi机制,在服务层实现了数据库配置信息独立的机制。 二、新建Mysql的JNDI数据源 访问http://localhost:7001/console/,登录进入WebLogic控制台主页。 点击左侧“域结构”下的“服务”下的“数据源”选项: 选择新建,一般数据源。填写数据源的名称,JNDI名称以及选择数据库类型: 选择数据库驱动版本: 其它配置按照默认即可: 填写数据库的连接信息: 接下来点击测试配置,看一下是否能连接成功: 出现“连接测试成功”即表示数据库配置没有问题。 点击下一步,勾选服务器。 点击完成之后,我们服务器端的JNDI数据源就配置完毕了。 三、应用程序引用WebLogic的jndi数据源 我们在MyEclipse中创建一个WebProject测试工程:

我们在src中创建一个数据库连接类:


编写该连接类:


package com.cn.opensource.dbConn;import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;public class DatabaseConnection {
//初始化上下文需要用到的工厂类
private final static String INITIAL_CONTEXT_FACTORY="weblogic.jndi.WLInitialContextFactory";
//WebLogic服务器的访问地址
private final static String PROVIDER_URL="t3://127.0.0.1:7001";
//WebLogic服务器中的JNDI数据源名称
private final static String MYSQL_JNDI_NAME="JNDI-MySqlDataSource";
//存储从JNDI容器中取出来的数据源
private static DataSource dsOracle = null;
private static DataSource dsMySQL = null;static {
try {
//初始化WebLogic Server的JNDI上下文信息
Context context = getInitialContext();
//获取数据源对象
dsMySQL = (DataSource) context.lookup(MYSQL_JNDI_NAME);
} catch (Exception e) {
e.printStackTrace();
}
}/**
* MethodName: getInitialContext
* Description: 获得WebLogic ServerJNDI初始上下文信息
* @return
* @throws Exception
*/
private static Context getInitialContext() throws Exception {
Properties properties = new Properties();
//指定工厂类
properties.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
//指定服务器访问地址
properties.put(Context.PROVIDER_URL, PROVIDER_URL);
return new InitialContext(properties);
}/**
* MethodName: getMySQLConnection
* Description: 获取MySQL数据库连接
* @return
* @throws SQLException
*/
public static Connection getMySQLConnection() throws SQLException {
return dsMySQL.getConnection();
}/**
* MethodName: CloseConnection
* Description: 关闭数据库连接
* @return
* @throws SQLException
*/
public static void Close()throws SQLException {
if(dsMySQL!=null){
dsMySQL.getConnection().close();
}
}
}

然后,我们创建一个Servlet,测试数据库是否连接成功并取到数据:



编写Servlet内容:


package com.cn.opensource.dbConn;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class JndiConnectionServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("A Servlet");
out.println("");
out.print("

测试JNDI数据源连接

");

Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = DatabaseConnection.getMySQLConnection();
String sql = "select * from teacher";
st = conn.createStatement();
rs = st.executeQuery(sql);
int i=0;
while (rs.next()) {
i++;
out.println("第"+i+"个教师信息");
out.println("编号:"+rs.getInt("number"));
out.println("姓名:"+rs.getString("name"));
out.println("性别:"+rs.getString("sex"));
out.println("所属班级:"+rs.getString("classname"));
out.println("住址:"+rs.getString("address"));
out.println("
");
}
} catch (Exception ex) {
ex.printStackTrace(); } finally {
try {
DatabaseConnection.Close();
} catch (SQLException e) {
e.printStackTrace();
}
}

out.println("");
out.println("");
out.flush();
out.close();
}public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}}

如果编译器没有给你自动在Web.xml中配置Servlet,别忘记自己配置:


<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

JndiConnectionServlet
com.cn.opensource.dbConn.JndiConnectionServlet

JndiConnectionServlet
/servlet/JndiConnectionServlet

接下来,将我们的测试程序部署在WebLogic服务器中:




启动服务器,访问应用路径,可以看到:


打开数据库的teacher表,数据一致


说明我们配置的数据源连接成功了!


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


4.使用WebLogic部署Web应用

我们之前都是使用MyEclipse的Server视窗来部署应用到WebLogic服务器上,但是这仅仅是我们 的开发步骤,带我们开发完成之后,将应用部署到生产环境的时候,一般都是将War包部署至服务 器中的。接下来为大家讲解一下如何在WebLogic中部署Web应用。第一步,打包应用程序 我们在编译器中,选择将我们开发的Web应用打包成War包:





我们可以在输出路径中看到我们打的War包: 第二部,将War包部署到WebLogic服务器 打开WebLogic的控制台,使用管理员账号密码登录:



选择左侧的“安装”选项,点击右侧安装选项即可开始部署Web应用: 选择War包所在路径,点击下一步: 一下步骤均按照默认配置即可:





点击完成之后即完成了部署,重新点击“部署”,我们可以看到我们部署好的Web应用: 为了验证应用是否部署到WebLogic上了,我们访问web应用的路径,并访问 之前我们写的取出所有教师信息的Servlet:http://localhost:7001/JndiTest/servlet/JndiConnectionServlet


数据加载出来,说明我们的Web应用部署成功!


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


5.WebLogic创建虚拟主机和绑域名

一、创建虚拟主机 启动WebLogic服务,登录到WebLogic的服务控制台: 在主界面,我们选择左侧的选项栏中的“环境”-->“虚拟主机”选项: 点击“新建”,进入新建虚拟主机界面: 我们输入主机名称,点击OK,我们就可以看到刚刚创建的虚拟主机的信息: 点击我们的主机名称,进入配置,填写绑定域名,点击保存: 显示以上信息,说明我们的虚拟主机的信息保存成功。二、修改WebLogic端口 我们将WebLogic的默认端口7001修改为80端口。 首先打开控制台,点击环境-->服务器:点击服务器列表中的服务器名称,进入服务器配置界面: 我们将“监听端口”参数由7001更改为80:




然后点击保存。此时我们重新使用80端口(默认80端口不需要输入端口号)进入WebLogic的控制台登录界面: 发现成功,说明我们的端口修改成功!三、为Ip配置域名映射 我们创建虚拟机的时候填写了一个域名,是www.JndiTest.com,实际上并没有这个域名, 我们在本地想访问这个域名,就必须在本机的hosts配置文件中添加www.JndiTest.com域名 的IP映射信息。hosts配置文件的路径在C:/Windows/System32/drivers/etc下: 我们用记事本或者其它文本编辑工具打开它,在里面仿照上一条配置,为我们 的新域名配置对应的IP地址映射的信息: 我们在浏览器访问这个地址,发现是可以的了: 访问我们本地的Web应用程序,也是可以的: 注意:别忘记修改Web应用程序链接Jndi数据源的地址端口为80


微信扫一扫

第七城市微信公众平台