rhel6.1下安装JDK7.0+JBoss6.0
2011-11-19 16:02:42| 分类: weblogic-jboss |字号 订阅
一.安装准备
1.操作系统:redhat-server-6.1-x86_64
下载地址:
http://www.verycd.com/files/d39b97540497d24175340915244e6da53600812032
2.JDK7.0:jdk-7u1-linux-x64.tar.gz
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
3.JBoss6.0: jboss-as-distribution-6.1.0.Final
下载地址:
http://www.jboss.org/jbossas/downloads
二.首先安装操作系统--(此步骤略去)
三.安装JDK
1.首先把JDK压缩包拷贝到操作系统任意目录
注意:JDK建议是tar.gz格式的文件,其他格式无法启动,会报错(bash: /usr/java/jdk1.7.0_01/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录)。这个不知道为什么估计是JDK的一个BUG。
2.卸载系统自带的开源JDK
[root@hui ~]# rpm -e java
3.新建java文件夹
[root@hui ~]# mkdir /usr/java
4.拷贝程序文件到该目录
[root@hui ~]# mv jdk-7u1-linux-x64.tar.gz /usr/java/jdk-7u1-linux-x64.tar.gz
5.解压文件
[root@hui java]# tar -xzf jdk-7u1-linux-x64.tar.gz
6.配置环境变量
配置环境变量有2种方式:
01. 修改.bashrc文件或者.bash_profile文件,此两文件一般在主文件夹下。
在文件中加入:
JAVA_HOME=/usr/java/jdk1.7.0_01
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
02.或者修改.profile文件,推荐此种方式。这样其他程序也可以友好的使用JDK了
[root@hui java]# vi /etc/profile
在文件夹中找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,修改为下面的形式
JAVA_HOME=/usr/java/jdk1.7.0_01
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
7.设置完毕后
执行配置文件令其立刻生效
[root@hui java]# source /etc/profile
之后执行以下命令验证是否安装成功
[root@hui java]# java -version
如果出现java version “1.7.0”等字样,说明您的JDK已经安装成功了
四.安装JBoss6.0
1.把新下载的jboss解压放到任意文件夹
我自己机器上是放在:/usr/local/JBoss下面
2.配置环境变量
[root@hui java]# vi /etc/profile
在文档中加入以下环境变量
export JBOSS_HOME=/usr/local/JBoss
export PATH=$PATH:$JBOSS_HOME/bin
3.使配置文件生效
[root@hui java]#source /etc/profile
4.验证是否配置成功
[root@hui java]#echo $JBOSS_HOME
当出现其安装目录的信息则代表配置成功:如我安装的位置 /usr/local/JBoss
5.修改jboss端口及IP地址,当然也可以不修改,默认是8080
网上很多文章都是修改 /soft/jboss-6.0.0.Final/server/default/deploy/jbossweb.sar/server.xml
其实这种方法是破坏了变量的。
我这里给出另一种方法,那就是直接修改变量。
修改bindings-jboss-beans.xml文件。
方法如下:
vi /soft/JBoss /server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml
找到
<bean>
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="bindingName">HttpConnector</property>
<property name="port">8080</property>修改成你自己想要的端口
<property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP
sockets</property>
</bean>
再找到
<bean>
<property name="serviceName">jboss.web:service=WebServer</property>
<property name="bindingName">AjpConnector</property>
<property name="port">8009</property>修改成你自己想要的端口
<property name="description">JBoss Web AJP connector socket</property>
</bean>
6.修改方法2修改ip地址只需要你在启动时加上参数即可如:
[root@hui java]#cd /soft/JBoss /bin
[root@hui java]#run.sh -c default -b 0.0.0.0(此时JBoss已经安装完成可以启动了)
看 到10:27:16,492 INFO [org.jboss.bootstrap.impl.base.server.AbstractServer] JBossAS [6.0.0.Final "Neo"] Started in 34s:423ms表示启动成功。
Ctrl键+C键退出jboss
7.创建JBoss用户
引用
[root@hui java]#mkdir /home/jboss
[root@hui java]#useradd -s /bin/bash -d /home/jboss jboss
[root@hui java]#chown -R jboss:jboss /soft/jboss-6.0.0.Final
[root@hui java]#chown -R jboss:jboss /home/jboss/
8.生成init脚本
要JBoss像守护进程一样运行了。
首 先创建init脚本(下面的脚本里面有一些数据调用的jdk是/usr/java/jdk1.7.0_01里面的,你的jdk如果是自己装的那就很可能不是这个路了,要在JAVAPTH=${JAVAPTH:-"/soft/jdk1.6.0_25"}里面改动一下,还有你的jboss安装路径也未必按照上面的 /soft/jboss-6.0.0.Final,所以你也需要在下面的配置文件里面JBOSS_HOME=${JBOSS_HOME:-" /soft/jboss-6.0.0.Final"}这一行,改动一下jboss的路径)下面脚本红色字体
[root@hui java]#vi /etc/init.d/jboss
复制下面的脚本
#!/bin/sh
#
# $Id: jboss_init_redhat.sh 81068 2011-11-1 15:14:35Z dimitris@jboss.org $
#
# JBoss Control Script
#
# To use this script run it as root - it will switch to the specified user
#
# Here is a little (and extremely primitive) startup/shutdown script
# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
# All this can be changed in the script itself.
#
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.
#define where jboss is - this is the directory containing directories log, bin, conf etc
JBOSS_HOME=${JBOSS_HOME:-"/soft/jboss-6.0.0.Final/"}
#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"jboss"}
#make sure java is in your path
JAVAPTH=${JAVAPTH:-"/soft/jdk1.6.0_25"}
#configuration to use, usually one of 'minimal', 'default', 'all'
JBOSS_CONF=${JBOSS_CONF:-"default"}
#the host where jboss should answer. o.o.o.o means answer all calls. set this to yourhost.com
JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}
#Uncomment this line to store the console output, otherwise it's sent to /dev/null
JBOSS_CONSOLE=${JBOSS_CONSOLE:+"$JBOSS_HOME/server/$JBOSS_CONF/log/console.log"}
#if JBOSS_HOST specified, use -b to bind jboss services to that address
JBOSS_BIND_ADDR=${JBOSS_BIND_ADDR:-"-b $JBOSS_HOST"}
#define the classpath for the shutdown class
JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.jar:$JBOSS_HOME/client/jnet.jar"}
#define the script to use to start jboss
JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF $JBOSS_BIND_ADDR"}
if [ "$JBOSS_USER" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSS_USER -c "
fi
if [ -n "$JBOSS_CONSOLE" -a ! -d "$JBOSS_CONSOLE" ]; then
# ensure the file exists
touch $JBOSS_CONSOLE
if [ ! -z "$SUBIT" ]; then
chown $JBOSS_USER $JBOSS_CONSOLE
fi
fi
if [ -n "$JBOSS_CONSOLE" -a ! -f "$JBOSS_CONSOLE" ]; then
echo "WARNING: location for saving console log invalid: $JBOSS_CONSOLE"
echo "WARNING: ignoring it and using /dev/null"
JBOSS_CONSOLE="/dev/null"
fi
#define what will be done with the console log
JBOSS_CONSOLE=${JBOSS_CONSOLE:-"/dev/null"}
JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
if [ -z "`echo $PATH | grep $JAVAPTH`" ]; then
export PATH=$PATH:$JAVAPTH
fi
if [ ! -d "$JBOSS_HOME" ]; then
echo JBOSS_HOME does not exist as a valid directory : $JBOSS_HOME
exit 1
fi
echo JBOSS_CMD_START = $JBOSS_CMD_START
case "$1" in
start)
cd $JBOSS_HOME/bin
if [ -z "$SUBIT" ]; then
eval $JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &
else
$SUBIT "$JBOSS_CMD_START >${JBOSS_CONSOLE} 2>&1 &"
fi
;;
stop)
if [ -z "$SUBIT" ]; then
$JBOSS_CMD_STOP
else
$SUBIT "$JBOSS_CMD_STOP"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 (start|stop|restart|help)"
esac
9.使脚本生效
引用
[root@hui java]#chown root:root /etc/init.d/jboss
[root@hui java]#chmod ug+x /etc/init.d/jboss
[root@hui java]#update-rc.d jboss defaults
chkconfig
10.启动jboss命令
引用
[root@hui java]#/etc/init.d/jboss start
11.停止jboss命令
引用
[root@hui java]#/etc/init.d/jboss stop
12.卸载JBoss命令
引用
[root@hui java]#/etc/init.d/jboss stop
[root@hui java]#update-rc.d -f jboss remove
[root@hui java]#rm -vf /etc/init.d/jboss
[root@hui java]#userdel jboss
[root@hui java]#rm -rvf /usr/local/JBoss
20:制作JSP的war部署文件
复制如下代码另存为index.jsp
<%@page contentType="text/html; charset=UTF-8"%>
<html>
饮马闪客<br/>
<%out.println("Hello World from jsp <br/>");%>
</html>
21:把index.jsp打包成ymsk.war
ubuntu下可以用命令打包
引用
jar cvf ymsk.war index.jsp
22:把生成的hello.war拷贝到/soft/jboss-6.0.0.Final/server/default/deploy下发布完成
23:http://192.168.1.101:8080/ymsk 就可以访问了(192.168.1.101是我服务器的地址)
24:制作Servlet的war部署文件
java源代码如下:(复制后另纯为HelloWorld.java)
package hello;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
}
}
25:把HelloWorld.java编译成HelloWorld.class 及xml 提供给大家
编译方法我就不写了
下载好以后把sk.zip改成sk.war然后上传发布即可
把sk.war上传至/soft/jboss-6.0.0.Final/server/default/deploy
jboss启动失败“Could not create deployment: file:/usr/local/jboss/server/default/conf/jboss-service.xml”
今天在一个测试环境中启动jboss时,不能正常启动,后来找了一会儿才查到了原因,记录一下吧。
在jboss.log中可以看到“Could not create deployment: file:/usr/local/jboss/server/default/conf/jboss-service.xml”这样的记录,但我仔细查了一下并非权限的问题。后来找了很久原因,结合网上搜索,加上仔细看到了“Caused by: java.lang.RuntimeException: Exception creating identity: host_221-83: host_221-83”的记录;才基本确定了是由于hostname解析不了,所以jboss不能正常启动。
解决方案很简单,要么是配置DNS使其能够解析本机的hostname(可用命令hostname获取),要么修改/etc/hosts文件使其解析为127.0.0.1即可。
如,我的/etc/hosts就修改为如下,添加了本机的hostname为“host_221-83”。