glassfish的安装与部署ubuntu

来源:互联网 发布:最新网络广告法 编辑:程序博客网 时间:2024/05/22 15:29

开发一直用的是tomcat,公司的服务器用的是glassfish。于是就研究了一下glassfish的安装与用法

也从网上找了一些教程。

开发的时候有一点要注意:在EL表达式中用三元表达式的时候${aa eq bb  ?  'cc  :  'dd' }  其中?和后面的一定都要加空格,

不然glassfish会报错,这个jsp编译不了。在tomcat中是正常好使的。

错误的:${aa eq bb?'aa':'bb'}

正确的:${aa eq bb  ?  'cc  :  'dd'  }


一开始到glassfish官网是glassfish4的下载,于是就下来试试吧。

从网上找了好多教程,找到了一个。说是glassfish是绿色版本的

就在自己的windows机器开始了。我的机器

D:\server\glassfish-4.0\glassfish4\bin

这个目录下,用cmd进入

asadmin 


说我的java版本是6


就看了一下我的jdk版本

安装的时候是1.6.X后续应该是升级上去的。

已经是1.7.0_45也不知道为什么就不好使。

自己也没找到原因,也不太想换这个jdk版本,官网都出jdk8了

另外:去glassfish说glassfish4是第一个支持jdk7的服务器

好吧。


还是换个服务器吧

找了glassfish 3.1.2

http://download.java.net/glassfish/3.1.2/release/glassfish-3.1.2-web.zip

下载地址

当然这个也可以找到很多版本

http://download.java.net/glassfish/3.1.2/release/

有个windows版本的,没管那些,就下了这个zip版本的

然后解压的本机

D:\server\glassfish-3.1.2-web\glassfish3\bin

执行asadmin命令

当然,这个是成功的页面了


刚开始启动的时候报一些端口的错误


在这个目录下配置

D:\server\glassfish-3.1.2-web\glassfish3\glassfish\domains\domain1\config\domain.xml

这个文件配置


其中有一段是这样的

这个中间有三个端口已经改成了7701  、7711  、4848

默认是8080、8181什么的第三个是4848这个我没有更改

你把这三个端口改成没有用到的端口,再重启就好使了

就是这个样子。

管理台的端口是4848

服务器的端口,就是咱们web应用访问的端口是7701  、7711

比较简单的就搭建成功了。



在linux


比如GlassFish3.1.2改变了安全规则。需要一些额外的步骤。


一 安装JDK,设置好环境变量。

我安装的是jdk1.6

[plain] view plaincopyprint?
  1. root@ciappserver1:~# java -version  
  2. java version "1.6.0_32"  
  3. Java(TM) SE Runtime Environment (build 1.6.0_32-b05)  
  4. Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)  

二 创建专用帐号

先创建glassfish系统帐号

[plain] view plaincopyprint?
  1. # adduser --home /home/glassfish --system --shell /bin/bash glassfish  
  2. Adding system user `glassfish' (UID 108) ...  
  3. Adding new user `glassfish' (UID 108) with group `nogroup' ...  
  4. Creating home directory `/home/glassfish' ...  

再创建用户组glassfishadmin
[plain] view plaincopyprint?
  1. # groupadd glassfishadm  


将glassfish加入glassfishadm组,glassfishadmin组的目录也设为/home/glassfish
[plain] view plaincopyprint?
  1. # usermod -a -G glassfishadm glassfish  
[plain] view plaincopyprint?
  1. chgrp -R glassfishadm /home/glassfish  


三 安装unzip
[plain] view plaincopyprint?
  1. apt-get install unzip  


四 下载glassfish

切换到glassfish用户,并下载和解压

[plain] view plaincopyprint?
  1. su glassfish  
  2. cd /home/glassfish  
  3. mkdir downloads  
  4. cd downloads  
  5. wget http://download.java.net/glassfish/3.1.2/release/glassfish-3.1.2-web.zip  
  6. unzip glassfish-3.1.2-web.zip  
将解压后的文件复制到/hom/glassfish目录下,然后退出该用户
[plain] view plaincopyprint?
  1. mv /home/glassfish/downloads/glassfish3/* /home/glassfish/  
  2. mv /home/glassfish/downloads/glassfish3/.org.opensolaris,pkg /home/glassfish/.org.opensolaris,pkg  
[plain] view plaincopyprint?
  1. exit  


要想在glassfish用户下可以使用java命令,添加两个软链接:

[plain] view plaincopyprint?
  1. ln -s /usr/jdk1.6/bin/java /etc/alternatives/java  
  2. ln -s /etc/alternatives/java /usr/bin/java  



五 修改目录权限

确保程序可以在glassfish用户下运行

[plain] view plaincopyprint?
  1. root@ciappserver1:~# chown -R glassfish /home/glassfish  
  2. root@ciappserver1:~# chmod -R ug+rwx /home/glassfish/bin/  
  3. root@ciappserver1:~# chmod -R ug+rwx /home/glassfish/glassfish/bin/  
  4. root@ciappserver1:~# chmod -R o-rwx /home/glassfish/bin/  
  5. root@ciappserver1:~# chmod -R o-rwx /home/glassfish/glassfish/bin/  

六 修改端口

修改/home/glassfish/glassfish/domains/domain1/config/domain.xml如下:

[html] view plaincopyprint?
  1. <network-listeners>  
  2.   <network-listener port="8081" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>  
  3.   <network-listener port="8181" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>  
  4.   <network-listener port="4848" protocol="admin-listener" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>  
  5. </network-listeners>  

这样,http采用8081,https采用8181,AdminGUI采用4848端口。


七 启动服务

[plain] view plaincopyprint?
  1. $ su glassfish  
  2. $ /home/glassfish/glassfish/bin/asadmin start-domain domain1  
  3. There is a process already using the admin port 4848 -- it probably is another instance of a GlassFish server.  
这是个GlassFish启动常见的错误,到/etc/hosts目录下看一下

原来这里错了,hostname命令返回的是ciappserver1

[plain] view plaincopyprint?
  1. 127.0.1.1   UBUNTU1204TEMPLATE  
修改成:
[plain] view plaincopyprint?
  1. 127.0.0.1       ciappserver1  

现在启动成功了。
[plain] view plaincopyprint?
  1. glassfish@ciappserver1:/root$ /home/glassfish/bin/asadmin start-domain domain1  
  2. Waiting for domain1 to start .......  
  3. Successfully started the domain : domain1  
  4. domain  Location: /home/glassfish/glassfish/domains/domain1  
  5. Log File: /home/glassfish/glassfish/domains/domain1/logs/server.log  
  6. Admin Port: 4848  
  7. Command start-domain executed successfully.  

打开网页http://10.112.18.178:4848/ 无法登录,用户名是admin,密码是adminadmin。为什么?

因为3.1.2加强了安全性。游戏规则改变了。默认admin密码也不再是adminadmin,而是空。


注意:如果是localhost可以直接进入管理员页面,无需密码。


八 启动后启用secure-admin

修改admin默认密码

[plain] view plaincopyprint?
  1. ./asadmin change-admin-password  
  2. Enter admin user name [default: admin]> (Press enter to use the default user name)  
  3. Enter admin password> (Press enter to use the default password)  
  4. Enter new admin password>   
  5. Enter new admin password again>   
  6. Command change-admin-password executed successfully.<strong>  
  7. </strong>  

特别注意前面两个问题都直接按回车即可。然后设置新密码,比如123456,输入两次。


[plain] view plaincopyprint?
  1. ./asadmin --host 10.112.18.178 --port 4848 enable-secure-admin  
--host 指定glassfish所在IP,回答两个问题,用户名和密码,分别是admin/123456.

重新启动glassfish.

再次打开网站myserver:4848,突然进行HTTPS提示,同意后。登录,终于看到了。


九 查看glassfish的用户

下面这个命令帮助我们查看当前glassfish的用户:

[plain] view plaincopyprint?
  1. ./asadmin list-file-users --authrealmname admin-realm  
只有一个admin.


十 创建系统服务

先创建/etc/init.d/glassfish脚本

[plain] view plaincopyprint?
  1. export AS_JAVA=/usr/lib/jvm/java-6-sun  
  2.    
  3. GLASSFISHPATH=/home/glassfish/bin  
  4.    
  5. case "$1" in  
  6. start)  
  7. echo "starting glassfish from $GLASSFISHPATH"  
  8. sudo -u glassfish $GLASSFISHPATH/asadmin start-domain domain1  
  9. ;;  
  10. restart)  
  11. $0 stop  
  12. $0 start  
  13. ;;  
  14. stop)  
  15. echo "stopping glassfish from $GLASSFISHPATH"  
  16. sudo -u glassfish $GLASSFISHPATH/asadmin stop-domain domain1  
  17. ;;  
  18. *)  
  19. echo $"usage: $0 {start|stop|restart}"  
  20. exit 3  
  21. ;;  
  22. esac  
  23. :  
增加可执行权限:

chmod +x ./glassfish

创建自启动脚本

[plain] view plaincopyprint?
  1. update-rc.d glassfish defaults  

现在可以通过 

servcie glassfis (start|stop|restart) 来测试了

然后重新启动后继续看是否已经自启动。


0 0
原创粉丝点击