CentOS7_x86_64部署WebLogic11g并设置开机自启

来源:互联网 发布:国外域名国内备案 编辑:程序博客网 时间:2024/06/06 09:02

场景:一个JavaEE项目,之前一直是windows下Oracle10g+Tomcat7,现在应客户要求,需要换成Linux下Oracle10g+WebLogic11g,捯饬了几天,终于弄差不多了。菜鸟的血泪史。下面结合自己的实践流程整理下。

一、安装JDK

不管是开发也好,生产环境也好,jdk是我们必不可少的,安装也比较简单,从官网上下载linux下安装包,我这里是jdk-7u79-linux-x64.rpm。然后按照如下流程安装:

1、查看本地已经安装的JDK

一般系统可能会自带OpenJDK或者之前我们已经安装了其他版本的jdk,为了顺利安装,首先需要清理已经安装的jdk。root用户下使用如下命令查看:

#java -version

比如我的机器就自带了OpenJDK,显示

java version “1.6.0”
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)

那么接下来我们得把他们卸载或者说删除。首先需要查找有哪些和jdk相关的软件包,依次使用命令:

#rpm -qa | grep java#rpm -qa | grep gcj#rpm -qa | grep jdk

得到一些软件安装信息列表,比如:

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

每一条都要去删除,删除命令:

#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

如果出现找不到openjdk source的话,那么还可以这样卸载

#yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115#yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

需要将每一条都执行删除命令。

2、安装JDK1.7

可以在/usr/下建立路径/java/

#mkdir /usr/java

将jdk的rpm包移到该路径下,然后执行

#rpm -ivh jdk-7u79-linux-x64.rpm

如果过程中要接受协议等,输入y接受。之后便安装成功。

3、配置JDK环境变量

配置环境变量是很重要的事,之后很多依赖jdk的,都可以通过环境变量方便的设置,而且有时候是我们必须配置的。最好安装时就给配好。
输入命令:

#vi /etc/profile

在下方添加:

export JAVA_HOME=/usr/java/jdk1.6.0_10
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

添加完成后保存退出,执行

#source /etc/profile

使当前更改生效。如果不放心,还可以重启一下机器。
之后可以使用命令:

#java -version#echo $JAVA_HOME

检查安装的效果。

二、安装WebLogic11g

1、安装准备

下载WebLogic安装包,我下载的是11g,也就是10.3.6版本,官网上安装包名称为wls1036_generic.jar,Oracle官网下载连接。将其拷贝到机器上来。

在安装之前,如果需要,可以添加专门的用户或者用户组,然后为WebLogic指定安装目录等,但不是必须的,根据个人需求。我这里账户名称是admin,我就按照默认的来了。安装包放在/home/admin/下,之后的安装路径等都是默认的。

2、安装WebLogic11g

这里使用admin账户登录并安装。为避免中文乱码可,先执行一下

$export LANG=en_US

然后找到/home/admin下的安装包,执行命令:

$java -jar wls1036_generic.jar -mode=console

安装有三种方式,默认界面安装,还有控制台安装和静默安装,这里使用的是控制台安装。

  • 回车后,进入欢迎界面,输入Next;
  • 然后会出现安装路径,默认,输入Next;
  • 注册安全更新,有三项,其中第三项默认是Yes,因为我们不准备接收安全更新,所以我们输入3;
  • 确认选择,输入No;
  • 提示是否绕过配置管理器启动过程并不接收安全更新通知,输入Yes;
  • 回车后出现刚才的三项列表,此时第三项已经更改为No;
  • 后面的步骤都是输入Next,直到提示安装完成;
  • 按Enter键,此时安装结束,应该会进入配置Domain流程,在下一节讲解。

    3、配置Domain

安装完成后按下Enter应该会默认启动Domain配置界面,如果不是,请到安装路径下执行配置启动脚本,路径为

/home/admin/Oracle/Middleware/wlserver_10.3/common/bin

找到config.sh,键入命令

$./config.sh

出现安装界面。我在网上看到的资料时console控制台模式,但是我自己输入Enter之后,出现的是窗口模式,不过不要紧,流程一样,基本都是默认的:

  • 欢迎界面,选择是新建domain还是扩展,因为第一次使用,输入1,即新建;
  • 选择domain源,也是使用默认配置,即键入1回车;
  • 应用程序模板选择,这里使用默认,即输入Next回车;
  • 编辑domain信息,域名base_domain,默认,输入Next回车;
  • 为domain选择目标或目录,默认,输入Next回车;
  • 配置管理员用户名和口令,这里按需要输入选项,并根据提示操作,比较简单,配置好输入Next回车;
  • domain模式选择,我选择的生产模式,输入2回车;
  • 选择JDK,使用我们之前安装的,输入2回车;
  • 选择可选配置,我们暂不配置,输入Next回车;
  • 开始执行创建,之后显示创建成功。

经过以上配置,我们已经创建了一个domain,类似于Tomcat中的webapps,用于放web应用。

此时我们已经可以启动WebLogic了,在路径

/home/admin/Oracle/Middleware/user_projects/domains/base_domain

下有启动脚本startWebLogic.sh,执行

$./startWebLogic.sh

即可启动,不过提示输入用户名密码,就是我们穿件domain时配置的,输入信息后回车,稍等片刻,在浏览器中输入

http://localhost:7001/console

如果能出现WebLogic登录页,则说明服务启动成功。

4、配置WebLogic启动参数

每次启动WebLogic时都要输入用户名和密码,假设我的WebLogic是自动随着我的服务器的启动而启动,那么如果此时因为是无人值守,谁来输这个用户名和密码啊?提供个方法记住密码——
进入到你新建的域中

$cd /home/admin/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer

然后在该文件夹下新建名为security的文件夹:

$mkdir security

在刚刚新建是文件夹中新建名为boot.properties文件:

vi boot.properties

然后在该文件中输入:

username=xxx
password=xxx

保存后退出。重启WebLogic。此时你会发觉,WebLogic再也不会提示要求你输入WebLogic管理台的用户名和密码了。
重启后我们来到刚刚的新建的文件夹中查看新建的文件:

$cd /home/admin/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/security$vi boot.properties

发现它的内容被加密了,因此只有装WebLogic的那个人即System Admin才真正知道WebLogic控制台的登录信息,这样就很安全了。

我们发现

/home/admin/Oracle/Middleware/user_projects/domains/base_domain

路径下只有启动脚本.startWebLogic.sh而没有停止脚本,不过无所谓,需要的脚本都可以在base_domain下的bin路径下找到,我们查看base_domain下启动脚本的内容会发现,他也只是转发命令到bin下的启动脚本而已。

5、部署web应用

WebLogic支持war包等部署,我测试的例子也是war包。之前是在Tomcat下部署的,在部署到WebLogic下时出现了一些小问题。先说基本配置。

  • 将打包好的war包放到base_domain下;
  • 启动WebLogic,浏览器输入地址,并且使用sysAdmin账户登录进去;
  • 在页面左侧的树结构中,点击“锁定并编辑”,然后点击下方“部署”;
  • 之后的操作都比较简单,直接按照页面提示操作就可以,不要忘了在部署完成后,点击左侧上面的“激活更新”,并启动刚才部署的web项目。
  • 在浏览器中输入 http://localhost:7001/webappname,应该就可以访问了。

注意:之前说了下我遇到了一些麻烦,这里有几点需要说明:


  • 使用MyEclipse等编辑器export导出war包时,注意不要勾选类似下图中的选项,即

Optimize for a specific server runtime

这里写图片描述

  • 对于打包好的war包,使用uzip等命令解压,然后jar打包,虽然可以做到结构不变,但是实际测试还是出了问题,无法启动,不知道具体原因,建议大家不要轻易改变结构,而是在编辑器中export出,当然如果弄明白其中的原理应该没问题。

  • 遇到一个比较棘手的异常:

    org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken


  • 查了下原因,大概是这样,因为我使用了Hibernate3,Hibernate3中使用的查询分析器的一个包antlr.jar版本是2.7.x,而WebLogic11g中已经包含了一个更早版本的该jar包,导致在启动时已经加载了老版本的而未加载新版本jar包,也就是jar包冲突了,导致了该异常。
    解决方案:让加载当前web应用时先加载WEB-INF下的jar包,具体方案就是,在WEB-INF下新建weblogic.xml,内容如下:
    <?xml version="1.0" encoding="UTF-8"?><weblogic-web-app      xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app          http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">          <container-descriptor>          <!--优先加载位于 Web 应用程序的 WEB-INF 目录中的类,然后再加载应用程序或系统类加载器中的类-->          <prefer-web-inf-classes>true</prefer-web-inf-classes>      </container-descriptor>  </weblogic-web-app> 

    然后重新编译打包war包再重新部署、启动,应该就可以了。

    三、设置WebLogic开机自启动

    上面我们已经说过了安装部署WebLogic并部署webApp,不过还不尽如人意,因为在实际生产环境下,及其可能因为更新或者打补丁等重启,此时WebLogic不会自动启动,而我们又无法知道机器什么时候重启,不可能也不需要总是手工启动。下面我们来配置WebLogic开机自动启动。

    1、创建WebLogic启动脚本

    以root用户登录,执行如下命令,创建启动脚本:

    # cd /etc/rc.d/init.d/# vi weblogic

    脚本中添加一下内容:

    #!/bin/bash # chkconfig: 345 20 80 # description: Weblogic Server auto start/stop script.# /etc/rc.d/init.d/weblogic # Please edit the variable export BEA_BASE=/home/admin/Oracle/Middleware export BEA_HOME=$BEA_BASE/user_projects/domains/base_domain export BEA_LOG=$BEA_HOME/weblogic.log export PATH=$PATH:$BEA_HOMEBEA_OWNR="admin" # if the executables do not exist -- display error if [ ! -f $BEA_HOME/startWebLogic.sh -o ! -d $BEA_HOME ] then       echo "WebLogic startup: cannot start"       exit 1 fi # depending on parameter -- startup, shutdown, restart case "$1" in   start)       echo -n "Starting WebLogic,log file $BEA_LOG: "       touch /var/lock/weblogic       su $BEA_OWNR -c "cd ${BEA_HOME}; nohup ./startWebLogic.sh > $BEA_LOG 2>&1  &"       echo "OK"       ;;   stop)       echo -n "Shutdown WebLogic: "       rm -f /var/lock/weblogic       su $BEA_OWNR -c "cd ${BEA_HOME}/bin; ./stopWebLogic.sh >> $BEA_LOG"       echo "OK"       ;;   reload|restart)       $0 stop       $0 start       ;;   *)       echo "Usage: `basename $0` start|stop|restart|reload"       exit 1 esac exit 0 

    2、赋予可执行权限

    执行命令:

    # chmod +x weblogic

    3、添加到服务列表中

    # chkconfig --add weblogic

    4、检查是否添加成功

    # chkconfig --list | grep weblogic

    weblogic 0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭

    5、使用方法

    开机或重启WebLogic应用服务器weblogic服务会自动启动。
    停WebLogic服务

    # service weblogic stop(或/etc/rc.d/init.d/weblogic stop)

    Shutdown WebLogic: OK

    启动WebLogic服务

    # service weblogic start(或/etc/rc.d/init.d/weblogic start)

    Starting WebLogic,log file
    /weblogic/bea/user_projects/domains/csky/weblogic.log: OK

    四、重新配置WebLogic依赖的JDK

    在实际使用中,我之前装的是JDK1.6,后来换成了1.7。除了按照第一部分安装JDK的步骤执行一遍以外,还需要配置WebLogic的JDK,否则之前的启动脚本等都可能会报错,类似:

    The JRE was not found in directory C:\PROGRA~1\Java\jdk1.6.0. (JAVA_HOME)
    Please edit your environment and set the JAVA_HOME variable to point
    to the root directory of your Java installation.

    原因:在安装WebLogic时,启动脚本等配置文件里的JAVA_HOME都是写的绝对路径,如

    SUN_JAVA_HOME=/usr/java\jdk1.6.0

    在更新了JDK后,这里并没有同步更改,那么我们需要手动更改。需要更改的有两处:

    (1)一个是路径

    /home/admin/Oracle/Middleware/user_projects/dmain/base_domain/bin/

    下的setDomainEnv.sh,键入命令

    $vi setDomainEnv.sh

    找到

    SUN_JAVA_HOME=/usr/java/jdk1.6.0

    更改为

    SUN_JAVA_HOME=”$JAVA_HOME”

    (2)另一处是路径

    /home/admin/Oracle/Middleware/wlserver_10.3/common/bin/

    下的commEnv.sh,执行命令

    $vi commEnv.sh

    找到

    #set up JAVA HOME
    JAVA_HOME=/usr/java/jdk1.6.0

    改为:

    #set up JAVA HOME
    JAVA_HOME=”$JAVA_HOME”

    保存退出,即可。
    OK,大功告成,JDK升级完成。这里两处都要改,否则在执行启动脚本时会报错,还有可能出现很费解的问题:手动执行.startWebLogic.sh时没问题,自启动脚本却报错找不到JAVA_HOME,原因就是第二处commEnv.sh里没有更改过来。

    以上根据网络资料及自身实践整理而来,仅供学习。如果有错误,欢迎指正。

    0 0
    原创粉丝点击