标签:centos7 weblogic11 weblogic自启 weblogic部署 weblogic安装
场景:一个JavaEE项目,之前一直是windows下Oracle10g+Tomcat7,现在应客户要求,需要换成Linux下Oracle10g+WebLogic11g,捯饬了几天,终于弄差不多了。菜鸟的血泪史。下面结合自己的实践流程整理下。
不管是开发也好,生产环境也好,jdk是我们必不可少的,安装也比较简单,从官网上下载linux下安装包,我这里是jdk-7u79-linux-x64.rpm。然后按照如下流程安装:
一般系统可能会自带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
需要将每一条都执行删除命令。
可以在/usr/下建立路径/java/
#mkdir /usr/java
将jdk的rpm包移到该路径下,然后执行
#rpm -ivh jdk-7u79-linux-x64.rpm
如果过程中要接受协议等,输入y接受。之后便安装成功。
配置环境变量是很重要的事,之后很多依赖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
检查安装的效果。
下载WebLogic安装包,我下载的是11g,也就是10.3.6版本,官网上安装包名称为wls1036_generic.jar,Oracle官网下载连接。将其拷贝到机器上来。
在安装之前,如果需要,可以添加专门的用户或者用户组,然后为WebLogic指定安装目录等,但不是必须的,根据个人需求。我这里账户名称是admin,我就按照默认的来了。安装包放在/home/admin/下,之后的安装路径等都是默认的。
这里使用admin账户登录并安装。为避免中文乱码可,先执行一下
$export LANG=en_US
然后找到/home/admin下的安装包,执行命令:
$java -jar wls1036_generic.jar -mode=console
安装有三种方式,默认界面安装,还有控制台安装和静默安装,这里使用的是控制台安装。
按Enter键,此时安装结束,应该会进入配置Domain流程,在下一节讲解。
安装完成后按下Enter应该会默认启动Domain配置界面,如果不是,请到安装路径下执行配置启动脚本,路径为
/home/admin/Oracle/Middleware/wlserver_10.3/common/bin
找到config.sh,键入命令
$./config.sh
出现安装界面。我在网上看到的资料时console控制台模式,但是我自己输入Enter之后,出现的是窗口模式,不过不要紧,流程一样,基本都是默认的:
经过以上配置,我们已经创建了一个domain,类似于Tomcat中的webapps,用于放web应用。
此时我们已经可以启动WebLogic了,在路径
/home/admin/Oracle/Middleware/user_projects/domains/base_domain
下有启动脚本startWebLogic.sh,执行
$./startWebLogic.sh
即可启动,不过提示输入用户名密码,就是我们穿件domain时配置的,输入信息后回车,稍等片刻,在浏览器中输入
如果能出现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下的启动脚本而已。
WebLogic支持war包等部署,我测试的例子也是war包。之前是在Tomcat下部署的,在部署到WebLogic下时出现了一些小问题。先说基本配置。
注意:之前说了下我遇到了一些麻烦,这里有几点需要说明:
使用MyEclipse等编辑器export导出war包时,注意不要勾选类似下图中的选项,即
Optimize for a specific server runtime
对于打包好的war包,使用uzip等命令解压,然后jar打包,虽然可以做到结构不变,但是实际测试还是出了问题,无法启动,不知道具体原因,建议大家不要轻易改变结构,而是在编辑器中export出,当然如果弄明白其中的原理应该没问题。
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
<?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并部署webApp,不过还不尽如人意,因为在实际生产环境下,及其可能因为更新或者打补丁等重启,此时WebLogic不会自动启动,而我们又无法知道机器什么时候重启,不可能也不需要总是手工启动。下面我们来配置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_HOME
BEA_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
执行命令:
# chmod +x weblogic
# chkconfig --add weblogic
# chkconfig --list | grep weblogic
weblogic 0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
开机或重启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
在实际使用中,我之前装的是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里没有更改过来。
以上根据网络资料及自身实践整理而来,仅供学习。如果有错误,欢迎指正。
版权声明:本文为博主原创文章,未经博主允许不得转载。
CentOS7_x86_64部署WebLogic11g并设置开机自启
标签:centos7 weblogic11 weblogic自启 weblogic部署 weblogic安装
原文地址:http://blog.csdn.net/sheen1991/article/details/47088131