-
BEA Weblogic Server 9
-
Jboss Application Server
-
Sun Java System Application Server
-
Tomcat 5.0 或者Tomcat 5.5
这些服务器可以直接添加在NetBeans 中运行环境下的服务器列表中。添加服务器可以通过菜单“工具”-〉“运行时”,打开“运行环境窗口”。鼠标右键选择“服务器”-〉“添加服务器”。
但是目前这种方式只能是添加本地的服务器。而通常软件开发中,真正部署程序的服务器不会是开发程序的电脑。因为,开发中频繁开启和停止电脑或者服务器很常见,但是作为测试的环境或者面向用户的环境一定要保持相对稳定。
(一)Java应用程序远程部署在服务器的通常做法:
把应用程序远程部署在服务器的做法一般是这样,以Sun application Server 9为例。
1。在NetBeans IDE中通过“生成项目”来进行编译,打包,最后会在项目的dist目录下生成包文件,比如ear, jar, war, 或者rar 文件
2。启动远程应用服务器。在本地通过浏览器访问远程应用服务器(remoteserver)的管理界面(http://remoteserver:4848).
3。输入管理员用户名和密码。Sun application Server 9 缺省的管理员用户名和密码是admin/adminadmin
4。根据应用程序类型,选择不同的类别
应用程序类型 | 包后缀名 |
---|---|
企业应用程序 | EAR |
Web 应用程序 | WAR |
EJB模块 | JAR |
连接器模块 | RAR |
5。下面以部署Web 应用程序为例,在Sun Application Server的管理界面中,选择"应用程序"下的"Web应用程序",在“要上载的文件”中输入目录及文件名,点击“下一步”
在“在部署 Web 模块(步骤 2,共 2 步)”中,点击“完成”
在“Web 应用程序”下可以可到已经部署成功的“ RemoteDeploy”项目
6。要取消项目部署,选中“RemoteDeploy”项目,点击”取消部署”按钮.
以上的远程部署都是在 NetBeans IDE开发环境之外进行,下面介绍一个方法,把远程部署的功能集成到NetBeans IDE开发环境中来,这样在NetBeans IDE中进行远程部署和取消部署,只需要几下鼠标操作,而根本不需要使用登录远程服务器的管理界面。
(二)在NetBeans IDE中通过修改build.xml实现远程部署
这个方法使用到Sun Application Server 9上的 sun-appserv-ant.jar文件,在这个jar文件中,有我们需要的asant命令集合。asant和ANT的功能相似,用来实现Java程序的编译,打包等功能,不过asant针对的是Sun Application Server 。为方便起见,在本地机器上也安装Sun Application Server 9,这样可以比较方便地找到一些需要的库文件。
1。在NetBeans IDE中创建示例项目“ RemoteDeploy”后,我们选择这个项目部署在“Sun Java System Application Server 9”上,当然,这时候,这个服务器是本地的。鼠标右键选择“ RemoteDeploy”项目-〉“属性”,在“运行”栏目下,可以查看并改变部署的服务器。
2。在本地电脑上建立一个passwordfile.txt 文件来保存远程服务器上管理员的密码,假设passwordfile.txt放在C:/Sun/AppServer9/下。passwordfile.txt文件内容如下:
AS_ADMIN_PASSWORD=adminadmin |
3。在NetBeans IDE中, 点击“文件”窗口, 打开build.xml文件。build.xml文件除了导入一个“build-impl.xml”文件外,内容基本为空。而 build-impl.xml 定义了ant所需要的几乎所有的参数和任务。通常建议开发者不要修改build-impl.xml,而把修改放在build.xml 中,并且可以利用或者覆盖build-impl.xm中已经定义好的一些任务。
下面是修改后的build.xml。去掉了原有的注释内容和build-impl.xml的导入, 重新定义了sun-appserv-deploy和sun-appserv-undeploy, 新加了两个任务“as-remote-deploy” 和“as-remote-undeploy”
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
< project name ="RemoteDeploy" default ="default" basedir ="." >
< description > Builds, tests, and runs the project RemoteDeploy. </ description >
< property name ="sun.appserver.ant.jar" value ="c:/Sun/AppServer9/lib/sun-appserv-ant.jar" />
< property name ="admin.cli.jar" value ="c:/Sun/AppServer9/lib/admin-cli.jar" />
< property name ="admin.password.file" value ="C:/Sun/AppServer9/passwordfile.txt" />
< property name ="asinstall.dir" value ="C:/Sun/AppServer9" />
< property name ="war.ear.file" value ="E:/mymodules/RemoteDeploy/dist/RemoteDeploy.war" />
< target name ="sun-taskdef" >
< taskdef name ="sun-appserv-deploy" classname ="org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask" >
< classpath >
< pathelement location ="${sun.appserver.ant.jar}" />
< pathelement location ="${admin.cli.jar}" />
</ classpath >
</ taskdef >
< taskdef name ="sun-appserv-undeploy" classname ="org.apache.tools.ant.taskdefs.optional.sun.appserv.UndeployTask" >
< classpath >
< pathelement location ="${sun.appserver.ant.jar}" />
< pathelement location ="${admin.cli.jar}" />
</ classpath >
</ taskdef >
</ target >
< target name ="as-remote-deploy" depends ="sun-taskdef" >
< sun-appserv-deploy file ="${war.ear.file}"
name ="RemoteDeploy"
force ="true"
precompilejsp ="false"
verify ="false"
upload ="true"
user ="admin"
passwordfile ="${admin.password.file}"
host ="remoteserver"
port ="4848"
asinstalldir ="${asinstall.dir}" />
</ target >
< target name ="as-remote-undeploy" >
< sun-appserv-undeploy
name ="RemoteDeploy"
user ="admin"
passwordfile ="${admin.password.file}"
host ="remoteserver"
port ="4848"
asinstalldir ="${asinstall.dir}" />
</ target >
</ project >
对 sun-appserv-deploy 和 sun-appserv-undeploy 的参数解释,可以参考文档“Application Server asant Tasks ” (http://docs.sun.com/app/docs/doc/819-3659/beaep?l=zh&a=view):
4。在NetBeans 中的”文件”tab中,点开“build.xml”,可以看到任务“as-remote-deploy”和“as-remote-undeploy”,
5。启动远程服务器remoteserver上的”Sun Application Server 9”.
6。鼠标右键选择“as-remote-deploy”-〉“运行目标”,就可以把项目“RemoteDeploy”部署在远程服务器“remoteserver”上。在NetBeans IDE输出窗口中可以看到以下内容
sun-taskdef: deps-module-jar: deps-ear-jar: deps-jar: library-inclusion-in-archive: library-inclusion-in-manifest: compile: compile-jsps: do-dist: dist: as-remote-deploy: Executing: deploy --user admin --passwordfile "C:/Sun/AppServer/passwordfile.txt" --host remoteserver --port 4848 --force=true --enabled=true --name RemoteDeploy --verify=false --precompilejsp=false --upload=true "E:/mymodules/RemoteDeploy/dist/RemoteDeploy.war" 已成功执行命令 deploy。 生成成功(总时间:0 秒) |
7。鼠标右键选择“as-remote-undeploy”-〉“运行目标”, 就可以从远程服务器”remoteserver”上取消项目“RemoteDeploy”的部署。在NetBeans IDE输出窗口中可以看到以下内容
as-remote-undeploy: Executing: undeploy --user admin --passwordfile "C:/Sun/AppServer/passwordfile.txt" --host remoteserver --port 4848 RemoteDeploy 已成功执行命令 undeploy。 生成成功(总时间:3 秒) |
(三)在NetBeans IDE中实现远程部署
在NetBeans 5.5.1中最简单的远程注册办法是通过“服务器管理”界面。选择菜单“工具”-〉“服务器管理器”。 点击"添加服务器".
只需要四步:
1。在“平台文件夹位置”中,选择“注册远程域”。点击“下一步”
2。输入主机名(主机名或主机IP地址)和端口号,点击“下一步”。在输入主机名的过程中,NetBeans会判断远程主机及端口是否有效。
3。输入远程主机的管理员用户名和管理员口令。点击“完成”