公司工作用服务器是glassfish,但是并没有多个domains的需求。 事情源于自己想再配置一个domain去做各种技术的测试。原本想再copy一份glassfish,但是事实证明一台机器上有多个glassfish会有各种端口冲突问题。后来想了想glassfish不是可以配置多个domain么,就赶紧去网上找找资料。其实配置多个domain非常简单,只需要几条命令。
glassfish 创建domain的命令是:create-domain create-domain
进入到glassfish的bin目录下,可以看到glassfish的asadmin工具。
在当前bin目录下执行./asadmin命令, 就可以进入到asadmin命令模式下:
下面就可以执行create-domain命令来创建domain了, 我们来创建一个默认设置的的domain,创建的过程中会要求你输入用户名,密码以及确认密码。
看到command create-domain executed successfully就创建成功了,创建的过程中,glassfish会默认指定一些端口,因为已经有一个存在的domain了,如果你没有修改过配置,两个domain一起启动,可能会出现一些端口冲突的问题。
这篇文章解决, no free port 的问题:No free port
java.net.BindException: No free port within range: 7676=com.sun.enterprise.v3.se rvices.impl.ServiceInitializerHandler@69ed60dd. 这篇文章可以解决:server up的问题:Is the server up? Remote server does not listen for requests on [localhost:4848]. Is the server up?
Deploying and Undeploying Applications
1. 下载glassfish提供的example,
https://glassfish.dev.java.net/downloads/quickstart/hello.war.
2. 使用命令行部署:
asadmin deploy sample-dir/hello.war
我机器上同时启动两个domains后的结果:
到这里domain就创建完成了,create-domain有很多配置项,默认的端口可以用配置项来指定,详细信息参照glassfish的官方文档:create-domain 。