1.WebLogic的下载与安装html
2.在Eclipse中添加WebLogicjava
3.WebLogic配置jndi数据源mysql
4.使用WebLogic部署Web应用web
5.WebLogic建立虚拟主机和绑域名sql
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的安装与配置就讲解完毕。安全
-------------------------------------------------------------------------------------------------------------服务器
打开咱们的Eclipse,这里我使用的是MyEclipse2014。
在上面的选项栏中,点击window,选择Preferences:
以后找到MyEclipse-->Server-->WebLogic的配置选择:
而后进行如下配置:
接下来,打开Server视图:
能够看到咱们的WebLogic的图标,静静的躺在其它服务器中间:
这就说明咱们在Eclipse中配置WebLogic成功啦!
-------------------------------------------------------------------------------------------------------------
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表,数据一致
说明咱们配置的数据源链接成功了!
-------------------------------------------------------------------------------------------------------------
咱们以前都是使用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应用部署成功!
-------------------------------------------------------------------------------------------------------------
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