`
javasogo
  • 浏览: 1817593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

GlassFish 中的 命令框架 (CLI) 实现

阅读更多

GlassFish中的命令框架(CLI)

[Command Line Interface框架的工作原理]

GlassFish开源服务器中间,提供了CMD命令行机能,服务器的使用者可以通过CMD来发布更新自己的jar包,配置服务器的JDBC连接等等。

那么,到底GlassFish是怎么做到这一步的呢?

我们看到GlassFish实际上是引用了一个开源的命令行框架--- Command Line Interface框架

我们具体可以参照以下URL:

https://glassfish.dev.java.net/javaee5/admin-cli/admin-cli.html

CLI框架的工作流程如下:

1. 在这个框架内部,使用者发送的命令以及参数,会通过CMD窗口传给常驻内存的CLI框架的核心类CLIMain

2. CLIMain通过查找一个名叫[CLIDescriptor.xml]的配置文件,在里面查找具体的执行类,一般来说GlassFish中的执行类都被叫做XXXXCommand之类的名字

3. XXXXCommand之类的执行类,开始访问MBeanServer调用相对应的MBean,访问资源(一般都是config.xml),配置服务器

MBean相关知识请看我的另外一篇文章

配置工作中会涉及到对config.xml的容错性检查,这是通过rng技术来实现,这里就不讲了

[实践 自己动手建立一个Command]

长话短说,我们来自己建立一个Command

1. 找到以下目录,在其中增加自己的Command执行实体类

[glassfish\admin-cli\commands\src\java\com\sun\enterprise\cli\commands]

public class NewListComponentsCommand extends S1ASCommand {

/**

* An abstract method that validates the options on the specification in the

* xml properties file This method verifies for the correctness of number of

* operands and if all the required options are supplied by the client.

*

* @return boolean returns true if success else returns false

*/

public boolean validateOptions() throws CommandValidationException {

return super.validateOptions();

}

/**

* An abstract method that Executes the command

*

* @throws CommandException

*/

public void runCommand() throws CommandException,

CommandValidationException {

// if validateOptions is false, then it must be that --help option

// is provided and there is no need to execute the command since

// either manpage or usage text is displayed

if (!validateOptions())

return;

String objectName = getObjectName();

Object[] params = getParamsInfo();

String operationName = getOperationName();

String[] types = getTypesInfo();

CLILogger.getInstance().printMessage("It is a test From Jiang Biao");

}

}

上面的Command唯一干的事情就是在CMD窗口上打出"It is a test From Jiang Biao"这句话

2. 我们找到[CLIDescriptor.xml]文件,在其中加入我们自己的Command配置

<Command name="new-list-components" classname="com.sun.enterprise.cli.commands.NewListComponentsCommand" numberofoperands="1" usage-text="list-components [--terse=false] [--echo=false] [--interactive=true] [--user admin_user] [--passwordfile file_name] [--help] [--type application|ejb|web|connector|webservice] target">

<ValidOption name="user"/>

<ValidOption name="password"/>

<ValidOption name="passwordfile"/>

<ValidOption name="host"/>

<ValidOption name="port"/>

<ValidOption name="secure"/>

<ValidOption name="interactive"/>

<ValidOption name="terse"/>

<ValidOption name="echo"/>

<ValidOption name="type"/>

<properties>

<property name="objectname">

<value>com.sun.appserv:type=applications,category=config</value>

</property>

<property name="operation">

<value>getAllUserDeployedComponents</value>

</property>

<property name="params">

<value>{#1}</value>

</property>

<property name="paramtypes">

<value>java.lang.String</value>

</property>

<property name="displaytype">

<value>name</value>

</property>

<property name="manpage">

<value>com.sun.enterprise.tools.cli.help</value>

</property>

<property name="command-type">

<value>list</value>

</property>

</properties>

</Command>

以上配置文件定义了我们自己的Command类,并且规定了控制台上访问该类的命令是[new-list-components]

3. 将我们的修改打成jar包,替换到glassfish的运行环境,我们就能在控制台上运行自己的command命令咯~~~~~

分享到:
评论

相关推荐

    JMX 在GlassFish中的应用

    ### JMX 在GlassFish中的应用 #### JMX与GlassFish:深入理解管理与监控 **JMX(Java Management Extensions)**是一种由Sun Microsystems提出并由Java社区推动的标准,旨在为Java应用程序、系统和网络提供一个...

    linux下实现glassfish自动启动

    在Linux环境下,Glassfish服务器的自动化启动...通过以上步骤,你就能够在Linux系统中实现Glassfish服务器的自动启动,从而提高运维效率。当然,更高级的自动化部署和监控可以结合使用如Ansible、Jenkins等工具来实现。

    在GlassFish中配置数据源连接池

    在 GlassFish 中,数据源连接池是通过 JDBC(Java Database Connectivity)来实现的。 配置 GlassFish 数据源连接池的步骤: 1. 打开 GlassFish 管理控制台 首先,需要打开 GlassFish 的管理控制台,可以通过在...

    glassfish单机集群jk_little

    这些命令通常是通过Glassfish的命令行接口(CLI)执行的。 "del.txt"可能是一个删除文件的列表,可能在配置过程中不再需要某些文件,所以将其列出以供清理。 总的来说,"Glassfish单机集群jk_little"的配置涉及到...

    glassfish-3.1.2.2.zip

    在实际应用中,开发者可以将编译好的Java EE 6应用打包成WAR或EAR文件,部署到Glassfish服务器上,从而实现业务逻辑的运行。 总的来说,Glassfish 3.1.2.2作为Java EE 6标准的实现,是开发者构建、测试和部署企业级...

    glassfish安装手册及源文件

    6. **启动与管理**:将Glassfish安装目录的bin路径添加到系统环境变量PATH中,然后使用`asadmin start-domain domain1`命令启动服务器。启动成功后,你可以通过访问`http://localhost:8080`查看默认的域1页面,而...

    GlassFishServer是JavaEE的开源参考实现

    在开发环境中,GlassFish Server提供了集成开发环境(IDE)的插件,如Eclipse和NetBeans,使得开发者能够无缝地在IDE中进行开发、测试和部署。此外,GlassFish Server还支持多种数据库连接,包括Oracle、MySQL、...

    glassfish集群搭建手册

    手册中还介绍了对Apache服务器的配置,以实现高效的应用访问和负载均衡。 手册的描述部分使用了重复的语言来强调其内容,即手册是关于Glassfish集群搭建的具体步骤和技巧。通过提及标签“glassfish”,我们可以知道...

    GlassFish安装向导

    安装 GlassFish 需要使用以下命令:`#cd /fishHome#java –jar glassfish-installer-v2.1.1-b31g-linux-ml.jar`。安装完成后,需要将 lib/ant/bin 目录下的文件设置为可执行权限。然后,需要编辑 setup-cluster.xml ...

    Glassfish部署web项目

    - **启动Glassfish**: 在 `glassfish/bin` 目录下运行 `asadmin.bat` 命令,使用 `asadmin start-domain domain1` 来启动服务器,其中 `domain1` 是先前配置的域名。 - **访问测试**: 启动后,通过浏览器访问 `...

    glassfish网络开发服务器

    6. **安全性**:GlassFish提供了丰富的安全特性,包括SSL/TLS加密、JAAS(Java Authentication and Authorization Service)支持、容器管理的身份验证和授权,以及与其他安全框架的集成。 7. **性能优化**:内置了...

    GlassFish 命令行操作

    GlassFish的常用命令主要包括创建、删除、启动、停止域等操作。例如,创建名为domain1的新域,只需执行`create-domain domain1`;若要删除域,使用`delete-domain domain1`,注意这将彻底移除域目录;启动域,使用`...

    Glassfish安装和启动

    GlassFish 是一款开源的应用服务器,它遵循Java EE标准,被广泛应用于开发、测试和生产环境中。本文档将详细介绍如何安装和启动GlassFish应用服务器。 #### 二、安装前准备 1. **JDK环境**:确保系统已安装JDK 5或...

    glassfish安装配置文档

    首先,需要在 Eclipse 中创建一个新的 Java 项目,然后将 GlassFish 服务器添加到项目中。在项目中,右键单击项目,然后选择 Debug,选择 Java Remote Application,右键菜单中选择 New,在出现的对话框中将 port 改...

    Glassfish关于tomcat的文档

    - **安全框架**:GlassFish集成了强大的安全框架,包括身份验证、授权以及数据加密等功能。 - **细粒度控制**:提供对资源访问权限的细粒度控制,使开发者能够更精确地管理应用程序的安全设置。 ##### 性能和可扩展...

    glassfish安装

    1. **启动Glassfish**:在命令行中,进入`$GLASSFISH_HOME/bin`目录,然后运行`asadmin start-domain`命令启动服务器。首次启动可能需要一些时间,因为Glassfish会初始化并加载所有必要的组件。 2. **管理控制台**...

    GlassFish5.0安装包

    相比于Tomcat,GlassFish提供了更全面的Java EE(现称为Jakarta EE)支持,包括对Servlet、JSP、EJB、JMS、JPA等标准的全面实现,为开发企业级应用提供了强大后盾。 一、GlassFish 5.0 安装 1. 下载:首先,你需要...

    NetBeans IDE and GlassFish developing demo

    在"hello-simple-glassfish"这个压缩包中,可能包含了一个简单的示例项目,用于演示如何在NetBeans IDE中创建并部署一个基于GlassFish的Web服务。通过分析这个项目,开发者可以学习到具体的代码实现、配置文件设置...

    glassfish安装步骤.txt

    为了能够成功安装并配置Glassfish,确保系统环境中已经安装了合适的JDK版本以及Ant工具是非常重要的。 #### 二、准备工作 在开始安装Glassfish之前,请确保以下条件已经被满足: 1. **JDK 5或更高版本**:...

Global site tag (gtag.js) - Google Analytics