GlassFish 命令行操作
本文根据GlassFish3撰写,但经测试,GlassFish4也适用。
GlassFish 是一款强悍的J2EE 应用服务器,支持完整的 J2EE 标准,而且开源免费,如果服务器配置不是特别低,若4G以上内存我推荐使用GlassFish,系统配置低,且仅使用JSP/JavaBean/Servlet的得话,还是用Tomcat要好些(占内存恐怕只有 GlassFish 的 1/10)。
GlassFish 有 Open Source GlassFish 和 Oracle GlassFish 两个版本,Open Source GlassFish 全开源,可任意使用, Oracle GlassFish 则需要遵守OTN 许可协议,可获得全功能无限期测试,拥有许可证才能用于生产,两款相似度超过99%,Oracle GlassFish 有一些性能调优的设置,但这些设置在 Open Source GlassFish 中可参考手册直接修改配置文件,也可以达相同的目的。
Open Source GlassFish 可由 http://glassfish.java.net/ 进行下载,下载的是安装版的话,基本上以下内容您可以略过,但如果您下载的是ZIP版在UNIX或者Windows下,操作基本一样,不过在安装之前先配置Java环境,本文不讨论。
Windows 下,解压 ZIP 包到X:\glassfish3下,Unix/FreeBSD解压至 /usr/local/glassfish3 目录下,Windows进入GlassFish的bin目录运行asadmin,FreeBSD下运行./asadmin,进入GlassFish控制台,Windows 和 FreeBSD 的 asadmin 的进入只是形式的不同,本质没区别。
# 创建一个domain (ZIP 解压开,已经默认有一个 domain1),另:在修改了管理员名称后会提示设置密码,否则会略过设置密码。
create-domain domain1
# 删除一个domain,若有文件需要备份删除前请检查清楚,因为整个 domain 目录会被直接端掉,而且没有回收站。
delete-domain domain1
# 启动一个domain
start-domain domain1
# 停止一个domain
stop-domain domain1
# 修改管理员口令,若要开启远程,必须先设置密码
change-admin-password
# 开启远程管理,注:修改该设置后应重启GlassFish服务,并且该 domain 必须有密码。
enable-secure-admin
# 关闭远程管理,关闭后只允许本地访问,会提示要求输入用户名和密码,开发环境或者对服务器安全要求较高的环境可以选择这么做,修改该设置后应该重启GlassFish服务。
disable-secure-admin
# 将指定的domain注册为一个Windows服务,方便开机时自启动,运行该命令结束后,会在 domain\bin 目录内产生 Service 文件用于控制服务。
create-service domain1
# 发布一个 WAR 包。
deploy d:/myapp.war
# 删除一个已发布的应用。
undeploy myapp
Windows 下,domain 作为“服务”以后,可以使用 Windows Services Manager 控制该服务, 也可以使用 Windows Services Wrapper:
相应得命令如下:
安装命令: domain1\bin\domain1Service.exe install
卸载命令: domain1\bin\domain1Service.exe uninstall
启动命令: domain1\bin\domain1Service.exe start
停止命令: domain1\bin\domain1Service.exe stop
重新启动命令: domain1\bin\domain1Service.exe restart
状态命令: domain1\bin\domain1Service.exe status
# 目前,GlassFish 4.1.1 已经发布,不过 GUI 界面似乎有几个功能无法通过 GUI 进行操作的 Bug,其中就有当创建 JDBC Connection Pools 时,会提示内部错误 HTTP Status 500 - Internal Server Error,这真是一个灾难,不过还是有办法解决。
# 当连接池无法在 GUI 环境下创建,那么在 asadmin 控制台(这才是纯正的管理控制中心)下创建也是可以的,需要完成以下两步:
# 1. 举例创建一个连接微软数据库的 JDBC Connection Pool,并且命名为 sample_pool,相关参数或其他类型数据库修改 classname 和配置为其他参数即可。
列出当前的连接池。
list-jdbc-connection-pools
测试某个连接是否有效。
ping-connection-pool sample_pool
列出 JDBC 资源.
list-jdbc-resources
创建 sqlserver jdbc 连接
#1 创建连接池
create-jdbc-connection-pool --datasourceclassname com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource --restype javax.sql.ConnectionPoolDataSource --property portNumber=1433:password=123456:user=sqluser:serverName=localhost:url=jdbc\\:sqlserver\\://localhost:databaseName=sun-appserv-samples:connectionAttributes=\;create\\=true sample_pool
# 2. 设置 JDBC Resources,指向 JDBC Connection Pool 的 sample_pool
create-jdbc-resource --connectionpoolid sample_pool jdbc/sample_pool
创建 mysql jdbc 连接
最简创建连接池命令,连接名:test4Pool
create-jdbc-connection-pool --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource --restype javax.sql.ConnectionPoolDataSource --property password=123456:user=root:URL="jdbc\:mysql\://127.0.0.1\:3306/editor" test4Pool
或者,含有一些属性的创建连接池命令
create-jdbc-connection-pool --datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource --restype javax.sql.ConnectionPoolDataSource --property portNumber=3306:password=123456:user=root:serverName=localhost:databaseName=editor:URL="jdbc\:mysql\://127.0.0.1\:3306/editor" test2Pool
创建好连接池后需要创建一个连接资源,以引用 test4Pool 连接池
create-jdbc-resource --connectionpoolid test4Pool jdbc/test4Pool
以上是在GlassFish控制台内的简单操作,如果不想进入控制也可以在 Windows Control或者UNIX/FreeBSD Shell内直接操作,和上面的类似,运行 asadmin 命令带上参数即可,进入 GlassFish 目录,举例如下:
Windows 和 FreeBSD 命令比较
Windows :
bin\asadmin create-domain domain1 或者bin目录内 asadmin create-domain domain1
UNIX/FreeBSD Shell:
./bin/asadmin create domain domain1
实际上进入 asadmin 控制台 Windows 和 Unix 操作完全上一样。
值得注意的是,在UNIX/BSD内,如果创建 domain 不成功,显示端口被占用(但实际并没有真的被占用时),这可能是域名解析导致的问题,您可以在/etc/hosts 里面为自己的主机做域名解析,然后再试着创建一次domain。
设置远程管理
远程访问 GlassFish 控制台时,如果没有合法证书,会提示证书错误,而无法访问,安全的解决方案是创建证书,另还有一个非安全的临时解决办法就是关闭浏览器的证书检查: 运行gpedit.msc打开组策略编辑器,找到“阻止忽略证书错误”并按照描述进行设置,重新打开浏览器便可以远程进入控制台。
GlassFish 下载
Java/Oracle 相关的下载
http://www.oracle.com/technetwork/java/index.html
另附一个完整版 GlassFish 的 Web Profile 版 GlassFish 对比数据供各位参考。
GlassFish Server Open Source Edition 3.1.x Web Profile vs. Full Platform distributions
Feature | Included in | Included in |
Java Platform, Enterprise Edition 6 | X | X |
EJB 3.1 Lite (Support for Local Container only) | X | X |
JTS/JTA 1.1 ** | X | X |
OSGi-based microkernel | X | X |
Clustering | X | X |
High-Availability | X | X |
Java Web Technologies (Servlet 3.0, JSP 2.2, JSF 2.0, JSTL 1.2, EL 2.2) | X | X |
Grizzly/Comet | X | X |
JPA 2.0, (EclipseLink), JDBC Connection Pooling | X | X |
JDBC 4.0 | X | X |
JavaDB 10.6.2.1 | X | X |
Web Administration Console and CLI | X | X |
Active Redeployment (Maintain session state on application redeploy) | X | X |
OMG CORBA APIs 3.0 | X | X |
Debugging Support for Other Languages 1.0 | X | X |
Common Annotations for Java 1.1 | X | X |
Dependency Injection for Java 1.0 | X | X |
Managed Beans 1.0 | X | X |
Interceptors 1.1 | X | X |
Contexts and Dependency Injection for Java 1.0 (CDI, ex-Web Beans) | X | X |
Bean Validation 1.0 | X | X |
JAX-RS 1.1 (Jersey) | X | X |
EJB 3.1 Full API (Support for Remote Container) | X |
|
Java EE Connector Architecture 1.6 | X |
|
JAX-WS 2.2 | X |
|
JAXB 2.2 | X |
|
Implementing Java Web Services 1.3 | X |
|
Web Services Metadata for the Java Platform 2.1 | X |
|
JMS 1.1 | X |
|
JavaMail 1.4 | X |
|
JACC 1.4 | X |
|
Java Authentication Service Provider Interface for Containers 1.1 | X |
|
Java EE Application Deployment 1.2 | X |
|
J2EE Management 1.1 | X |
|
JAX-RPC 1.1 | X |
|
JAXR 1.0 | X |
|
CORBA 3.0.0 | X | * |
Metro | X |
|
* The Full Java EE Platform contains the complete CORBA package. The OMG CORBA v3.0 APIs are available in the Java EE Web Profile.
** Transaction propagation not supported
QQ群:236201801,欢迎讨论
参考资料
https://docs.oracle.com/cd/E19798-01/821-1757/6nmni99aj/index.html
http://docs.oracle.com/cd/E19900-01/820-0847/gcode/index.html
http://docs.oracle.com/cd/E19798-01/821-1751/ggnop/index.html
http://docs.oracle.com/cd/E19798-01/821-1751/gjzfg/index.html
http://glassfish.java.net/webprofileORfullplatform31x.html
编译 Glassfish 可以参考
https://blog.csdn.net/joyous/article/details/88588027
.