【WebLogic使用】

目录 

1.WebLogic的下载与安装html

2.在Eclipse中添加WebLogicjava

3.WebLogic配置jndi数据源mysql

4.使用WebLogic部署Web应用web

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

1.WebLogic的下载与安装

1、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应用服务器功能

2、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

咱们下载完毕以后,会有一个压缩包:


3、WebLogic安装
将咱们下载的压缩包解压:


打开目录中的Disk/install安装目录,找到名为ng.cmd的脚本文件:


双击打开脚本文件,弹出一个黑色的控制台:数据库

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


稍等片刻,就会出现WebLogic的安装界面:


咱们接下来按照如下步骤进行安装:

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“安装”

点击“下一步”

点击完成,WebLogic就安装完毕了。接下来会弹出WebLogic的配置界面。

3、WebLogic的配置
安装完毕以后,会弹出配置窗口,咱们按照如下操做进行配置:

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“下一步”

点击“建立”浏览器

点击“下一步”

看到完成界面,就说明咱们的WebLogic的安装与配置都已经完成了。

4、简单操做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数据源

1、什么是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,使用他们,能够经过
“数据库链接池”来管理数据库的连接和配置:

<!-- 配置c3p0数据源 -->  
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
    <property name="jdbcUrl" value="${jdbcUrl}"></property>  
    <property name="driverClass" value="${driverClass}"></property>  
    <property name="user" value="${user}"></property>  
    <property name="password" value="${password}"></property>  
    <!--初始化时获取三个链接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->  
    <property name="initialPoolSize" value="${initialPoolSize}"></property>  
    <!--链接池中保留的最小链接数。Default: 3 -->  
    <property name="minPoolSize" value="3"></property>  
    <!--链接池中保留的最大链接数。Default: 15 -->  
    <property name="maxPoolSize" value="${maxPoolSize}"></property>  
    <!--当链接池中的链接耗尽的时候c3p0一次同时获取的链接数。Default: 3 -->  
    <property name="acquireIncrement" value="3"></property>  
    <!--最大空闲时间,1800秒内未使用则链接被丢弃,若为0则永不丢弃。Default: 0 -->  
    <property name="maxIdleTime" value="1800"></property>  
</bean>

而且把数据库配置单独放置在porperties配置文件中:

这样作就在应用层实现了数据库配置信息独立的机制。这样会使应用程序的数据库配置更加灵活。

而咱们的WebLogic服务器,拥有绑定Jndi数据源的功能,也就是服务器来对应用程序的数据库配置
进行托管,应用程序只须要在其应用代码中制定使用jndi模式连接WebLogic的数据源信息便可。
当须要修改数据库信息的时候,根本不须要动应用程序的东西,只须要调整WebLogic的jndi数据源
中的数据库配置信息便可。

也便是说,WebLogic的jndi机制,在服务层实现了数据库配置信息独立的机制。


2、新建Mysql的JNDI数据源
访问http://localhost:7001/console/,登陆进入WebLogic控制台主页。
点击左侧“域结构”下的“服务”下的“数据源”选项:

选择新建,通常数据源。

填写数据源的名称,JNDI名称以及选择数据库类型:


选择数据库驱动版本:


其它配置按照默认便可:



填写数据库的链接信息:



接下来点击测试配置,看一下是否能链接成功:



出现“链接测试成功”即表示数据库配置没有问题。
点击下一步,勾选服务器。



点击完成以后,咱们服务器端的JNDI数据源就配置完毕了。




3、应用程序引用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("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        out.println("<HTML>");  
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");  
        out.println("  <BODY>");  
        out.print("<h1>测试JNDI数据源链接</h1>");  
          
        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("<br/>");  
            }  
        } catch (Exception ex) {  
            ex.printStackTrace();  
  
  
        } finally {  
            try {  
                DatabaseConnection.Close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
          
        out.println("  </BODY>");  
        out.println("</HTML>");  
        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"?>  
<web-app version="3.0"  
    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">  
  <servlet>  
    <servlet-name>JndiConnectionServlet</servlet-name>  
    <servlet-class>com.cn.opensource.dbConn.JndiConnectionServlet</servlet-class>  
  </servlet>  
  
  
  <servlet-mapping>  
    <servlet-name>JndiConnectionServlet</servlet-name>  
    <url-pattern>/servlet/JndiConnectionServlet</url-pattern>  
  </servlet-mapping>  
  
  
</web-app>


接下来,将咱们的测试程序部署在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建立虚拟主机和绑域名

1、建立虚拟主机
启动WebLogic服务,登陆到WebLogic的服务控制台:


在主界面,咱们选择左侧的选项栏中的“环境”-->“虚拟主机”选项:

点击“新建”,进入新建虚拟主机界面:

咱们输入主机名称,点击OK,咱们就能够看到刚刚建立的虚拟主机的信息:

点击咱们的主机名称,进入配置,填写绑定域名,点击保存:


显示以上信息,说明咱们的虚拟主机的信息保存成功。

2、修改WebLogic端口
咱们将WebLogic的默认端口7001修改成80端口。
首先打开控制台,点击环境-->服务器:

点击服务器列表中的服务器名称,进入服务器配置界面:

咱们将“监听端口”参数由7001更改成80:

而后点击保存。

此时咱们从新使用80端口(默认80端口不须要输入端口号)进入WebLogic的控制台登陆界面:

发现成功,说明咱们的端口修改为功!

3、为Ip配置域名映射
咱们建立虚拟机的时候填写了一个域名,是www.JndiTest.com,实际上并无这个域名,
咱们在本地想访问这个域名,就必须在本机的hosts配置文件中添加www.JndiTest.com域名
的IP映射信息。

hosts配置文件的路径在C:\Windows\System32\drivers\etc下:


咱们用记事本或者其它文本编辑工具打开它,在里面仿照上一条配置,为咱们
的新域名配置对应的IP地址映射的信息:


咱们在浏览器访问这个地址,发现是能够的了:


访问咱们本地的Web应用程序,也是能够的:


注意:别忘记修改Web应用程序连接Jndi数据源的地址端口为80

相关文章
相关标签/搜索