开启glassfish安全管理允许远程访问das。
remotefailure:至少有一个管理员用户的口令为空,安全管理不允许口令为空。请使用change-admin-password命令或管理控制台为管理员帐户创建非空口令。
打开命令提示窗口,进入glassfish/bin目录;输入命令。注意默认密码为空,要求输入时直接回车即可。同样是asadmin管理模式下,输入:enable-secure-admin,这时求输入管理员账号密码,按照提示进行即可。最后别忘了重启。
如何在Glassfish上部署web应用
使用glassfish必须要求自定义<glassfishDirectory>,<user><passwordFile>或者<adminPassword>,<domain><components><debug><echo>这几个标签,对于这几个标签解释如下:
<configuration>:定义
<glassfishDirectory>:glassfish_home的目录,可以通过在settings.xml profiles中设置或者在这里指定
<user>:用户名,glassfish安装后会自动新建了一个域,domain1,用户名默认是admin,也可以通过settings.xml profiles中设置或者在这里指定
<adminPassword>:用户名密码,这个跟<passwordFile>是互相冲突的,两者只能选1,使用这个标签则要明文输入管理员登录密码,而且在glassfish启动的时候会自动生成一个tmp的文件进行读取
<passwordFile>:密码文件,指定新建域的密码文件存放位置,以domain1来说密码位置上存在domain1的根目录下的master-password.
<debug>:是否使用debug模式启动glassfish,使用debug模式启动可以查看中间使用的[Info]信息,可以跟echo一起使用
<echo>:是否以echo模式启动glassfish,使用echo模式启动则直接运行,除了最后出错信息跟一些必要的[Info]信息之外其余都不显示包括中间运行错误的信息.
<domain>:域
<name>:域名,指定当前项目使用那个域启动,这个域是跟<user>,<passwordFile>的内容对应的.
<adminPort>:控制台端口,一般是4848
<components>:组件,生成目录:
<component>组件
<name>:组件名称,一般默认使用project的artifactId,也就是project的文件名
<artifact>:生成指定文件的目录与文件类型,对于webapp的话则是webapp.
关于glassfish的问题
一,开发工具的选择
Java
EE,或者是JSF应用开发,Netbeans和Glassfish是最好的搭配选择,前者对于后者有非常好的支持。但要注意netbeans的版
本,5.5是不支持glassfish v2的。而netbeans6还很不稳定,所以现阶段最好的版本是netbeans5.5.1。
关于Netbeans下开发Java EE应用,官方有文档介绍:Java EE 应用程序相关教程,这里主要介绍一下生产环境中web应用在glassfish下的部署和配置
二,下载安装Glassfish V2
1)下载Glassfish v2并解压缩。下载完毕後,执行以下命令:
java -Xmx256m -jar glassfish_filename.jar
点击接受弹出的协议后(这里sun比较无聊啊,所有软件都是,明明一个普通压缩包,非压成jar让你看一下协议才行),glassfish会解压到一个名为glassfish的目录里。
2) 修改端口
glassfish是通过ant来安装的,安装脚本在setup.xml下,在里面可以修改一些配置,比如端口等等。在setup.xml中主要有以下设置:
xml 代码
﹤property name=”domain.name” value=”domain1”/﹥域名
﹤property name=”instance.name” value=”server”/﹥
﹤property name=”admin.user” value=”admin”/﹥ 管理员用户名
﹤property name=”admin.password” value=”adminadmin”/﹥ 管理员密码
﹤property name=”admin.port” value=”4848”/﹥ 管理平台端口
﹤property name=”instance.port” value=”8080”/﹥ 实例端口,也就是通过这个端口来访问web应用
﹤property name=”orb.port” value=”3700”/﹥
﹤property name=”imq.port” value=”7676”/﹥
﹤property name=”https.port” value=”8181”/﹥ https端口
根据需要修改以上设置,执行:ant -f setup.xml,如果系统没有安装ant,在glassfish\lib\ant下有一个ant1.6版。安装结束后,进入glassfish/bin下,在控制台执行下面命令启动glassfish:
asadmin start-domain domain1 // domain1是上面设置的domain.name,系统默认domain1
启动结束后,进入http://localhost:8080测试是否已经正确启动
asadmin stop-domain domain1 //停止服务器
三,部署web应用
有三种方式,可以直接将war或ear放在glassfish/domain/autodeploy目录下,glassfish启动后会自动部署。
第二是通过命令asadmin deploy部署应用, 另外 asadmin updeploy 卸载应用。通过asadmin deploy
–help 和 asadmin undeploy –help 获得更多帮助。
第三是通过我推荐的方式,通过glassfish管理控制台进入http://localhost:4848,默认用户admin,密码adminadmin。打开後看到如下界面:
进入左侧菜单, Applications ->Web
Applications,在列表中可以看到已经部署的应用,如要部署新应用,点击deploy按钮,选择本地的war,设定好context
path,点击OK,无论部署成功或失败,都会看到相应的信息提示
注:通过这种方式,可以进行远程部署,只要打开目标服务器上的管理控制台,选择一个本地的war,就可以快速的部署到远程服务器上,非常方便,这也是推荐的原因。对于EJB应用,在Enterprise Applications下部署,方法同上
四,配置jdbc数据源
对于Java EE应用,经常需要事先设定数据源,否则部署时会报javax.naming.NameNotFoundException
配置方法是进入Resources ->JDBC,会看到JDBC Resources和Connection pools
先设定Connection
pools,以MySql为例,点击New,命名为MySqlPools,ResourceType选择
javax.sql.ConnectionPoolDataSource,Database
vendor肯定选择mysql,然后点击next进入下一页面。最主要的是设定Additional
Properties,也就是jdbc连接配置,设定好url, user,
password,其他的保持默认值,也可以根据需要自己添加属性。设定好连接池后,接着设定JDBC
Resources,新建一个JDBC,名称要和你的web应用里的持久化单元采用的数据源的名称一致。
然后再次部署web应用,就会正常运行了。
报错很明显哈,你的一个URL:/Coordinator, 配置了两个Servlet,要是真这样就可以启动的话,当你访问/Coordinator时,你说系统应该用哪个Servlet来处理嘛,肯定混乱了,就像要是一个儿子有两个爹,你说小孩打架了哪个爹应该出来负责嘛…就是这么的,所以你可以检查哈你的配置文件,或者直接搜索/Coordinator,肯定会搜出两个地方,改一下URL,保证一个URL对应一个Servlet就可以啦
以上就是关于如何查看glassfish是否可以远程登录全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!