【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

相關文章
相關標籤/搜索