Notes: glassfish 出现__admingui/common/index.jsp not found 的问题处理

这几天出现了一个奇怪的现象,glassfish的管理端“无缘无故”的登录不了了,查看server.log见以下错误:

File "%2Fopt%2Fglassfish3%2Fglassfish%2Flib%2Finstall%2Fapplications%2F__admingui%2Fcommon%2Findex.jsp" not found|#]

整理下:

File "/opt/glassfish3/glassfish/lib/install/applications/__admingui/common/index.jsp" not found|#]

这个是管理端的首页,更换了好几个全新的glassfish版本在服务器上的现象依旧,本地跑却一点儿事情没有,实在是不明白原因。

最后在这里:http://www.java.net/node/699754 得到了提示,一个叫 dcam 的家伙说:
继续阅读Notes: glassfish 出现__admingui/common/index.jsp not found 的问题处理

Notes: 更改glassfish的日志轮转数量

最近升级到glassfishv3.1.1之后,发现日志的数量始终保持在10个,判断是日志轮转数量有默认限制,查了官方文档,设置如下:

./bin/asadmin set-log-attributes
com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=50

如果glassfish的默认管理端口变了,则需要指定管理端口号,如:
继续阅读Notes: 更改glassfish的日志轮转数量

Notes: update glassfishv3

进入glassfishv3所在目录下的bin目录,执行:

./pkg image-update 

正常情况下,glassfish就会去检查更新,并下载更新文件进行更新。

但是如果是在 RHEL or CentOS 下,可能会出现 SE Linux问题,提示如下错误:

Traceback (most recent call last):
  File "/opt/glassfishv3/pkg/bin/client.py", line 61, in ?
    import pkg.actions as actions
  File "/opt/glassfishv3/pkg/vendor-packages/pkg/actions/__init__.py", line 59, in ?
    globals(), locals(), [modname])
  File "/opt/glassfishv3/pkg/vendor-packages/pkg/actions/directory.py", line 36, in ?
    import generic
  File "/opt/glassfishv3/pkg/vendor-packages/pkg/actions/generic.py", line 45, in ?
    import pkg.variant as variant
  File "/opt/glassfishv3/pkg/vendor-packages/pkg/variant.py", line 28, in ?
    from pkg.misc import EmptyI
  File "/opt/glassfishv3/pkg/vendor-packages/pkg/misc.py", line 32, in ?
    import OpenSSL.crypto as osc
  File "/opt/glassfishv3/pkg/vendor-packages/OpenSSL/__init__.py", line 11, in ?
    import rand, crypto, SSL, tsafe
ImportError: /opt/glassfishv3/pkg/vendor-packages/OpenSSL/crypto.so: 
cannot restore segment prot after reloc: Permission denied

这个时候,执行一下这个命令:

/usr/sbin/setenforce 0

就可以临时禁用SE Linux的强制检查,再次更新即可。

Notes: glassfish忘记管理员密码的解决办法

常用的方法有两个:

一、如果现有的 domain 上只是些不重要的内容,那么最方便的就是删除现有的 domain,重新创建一个 domain。

//删除domain1
asadmin delete-domain domain1
//重新创建一个domain1
asadmin create-domain --adminport 4848 domain1

二、创建一个临时 domain,再把临时 domain 的 admin-keyfile 拷贝到老 domain 上。

//创建临时domain
asadmin create-domain --adminport 4848 temp
//将临时domain的admin-keyfile拷贝到老domain中
cp domains\temp\config\admin-keyfile  domains\domain1\config\admin-keyfile
//删除临时domain
asadmin delete-domain temp

Notes: 在GlassFish中缓存静态资源,开启Gzip

前面有文章介绍到,我们有网站项目是跑在GlassFishV3服务器上的,因此针对常用的网站优化措施,比如静态资源添加一个an expires header,网站开启Gzip功能,在GlassFishV3这两个的配置稍不一样。

为静态资源添加an expires header

如果你使用的是Apache或者Nginx这个配置是非常容易的,这里以Nginx为例,在Server段加入以下代码即可:

location ~ \.(gif|jpg|jpeg|png|ico|css|js)$ {
	        expires 7d;
	    }

继续阅读Notes: 在GlassFish中缓存静态资源,开启Gzip

GlassFishv3 数据库连接池配置

最近的连着三个项目都在使用glassfishv3,在实际使用过程中发现单GlassFish比单Tomcat的承载要大不少,同时GlassFish自带的数据库连接池性能也比在Tomcat中配置的连接池要好,这里就说下glassfishv3的连接池配置。

PS:由于GlassFish是一个完整的J2EE容器,因此在系统开发阶段GlassFish的部署和测试也就比Tomcat慢不少,这是唯一不爽的地方。

1、进入GlassFish的管理界面,查看右侧,资源-JDBC-连接池:


继续阅读GlassFishv3 数据库连接池配置

[10/20 周主题] – GlassFish单机和多机集群的配置

GlassFish可以配置单机集群和多机集群(即普通意义上的真集群)。

单机集群和多机集群配置上大同小异,只是代理服务器不同而已,单机集群代理服务器和代理节点在一个机子上,而多机集群就是将代理服务器和代理节点分布在不同的机器上。

下面就一步步来配置GlassFish集群,我是在Linux上部署的,因此下面的部署方式是Linux下的部署方式,Windows下的差不多:

1、下载 GlassFish, 我选择的是 GlassFish Server Open Source Edition 2.1.1中的 glassfish-installer-v2.1.1-linux-ml.jar 多语言版;

Linux Platform

继续阅读[10/20 周主题] – GlassFish单机和多机集群的配置