Sun ONE logo      上一页      目录      索引      下一页     

Sun ONE Portal Server 6.2 管理员指南

第 14 章
命令行实用程序

Sun ONE Portal Server 在其图形用户界面之外还提供了一组命令行实用程序。

本章讨论的命令行实用程序列于表 14-1 中,它们只涉及管理任务。该表共有两列,第一列列出了命令,第二列给出了简要说明。这些命令按功能进行了分组,具体功能有:“桌面”、“重写器”和搜索。

表 14-1 Sun ONE Portal Server 命令行实用程序

命令

说明

deploy

在网络容器中部署网络应用程序。

pdeploy

在网络容器中部署 portlet 网络应用程序。

dpadmin

利用它能够在显示配置文件文档中检索、添加、修改和删除显示配置文件对象。

par

执行与 .par 文件有关的功能,此类文件用于传输频道和/或提供者。

rwadmin

管理员可以利用它对重写器数据进行管理。

rdmgr

执行搜索服务器与资源描述和搜索数据库协同工作所需的所有功能。

sendrdm

提供基于 CGI 或命令行的搜索机制。

StartRobot

启动 Robot 在网上进行搜索(搜寻)。

还可以使用命令行界面 amadmin 对 Sun ONE Identity Server 进行管理。amadmin 工具的主要用途是帮助管理员在 Identity Server 上执行批量管理任务,例如,创建、注册和激活新的服务,以及创建、删除和读取(获取)组织、用户容器、组、角色和用户。有关详细信息,请参阅 Sun ONE Identity Server 6.1 Programmer's Guide


deploy

说明

deploy 命令可对 Sun ONE Portal Server 网络应用程序文件的源文件进行打包并将文件包部署到 Portal Server 软件的宿主网络容器。

Sun ONE Portal Server 的源文件存储在 /opt/SUNWps/web-src 目录中。WEB-INF/xml 子目录包含 web.xml 片段文件,可以使用 deploy 命令对这些文件进行合并,以形成与 Sun ONE Portal Server 网络应用程序相应的 web.xml 文件。web.xml 片段文件的相应部分是按 web.xml 片段文件的字母排列顺序进行合并的。一旦形成了最终的 web.xml 文件,便会使用 jar 命令将 opt/SUNWps/web-src 目录中的文件放到一个网络应用程序归档 (WAR) 文件中。该 WAR 文件通过 deploy 命令部署到网络容器。

语法

/opt/SUNWps/bin/deploy [redeploy]

子命令

deploy 命令可以带有 redeploy 子命令。如果不带 redeploy 选项调用 deploy 命令,它会提示通过标准输入输入配置信息。

redeploy

说明

redeploy 子命令指定 deploy 命令重复使用与目前部署中的 Sun ONE Portal Server 网络应用程序相关联的“统一资源指示符”(URI) 及其它信息。

语法

deploy redeploy


pdeploy

说明

pdeploy 是一个命令行工具,可以用来在 Portal Server 中部署和取消部署 portlet 网络应用程序。

pdeploy 命令需要下列各项:

PDConfig.properties 文件提供有 pdeploy 命令部署 portlet 应用程序时使用的某些默认设置。该文件安装在 /etc/opt/SUNWps/portlet 目录中。

pdeploy 命令在部署 portlet 应用程序时会引用 PDConfigure.properties 文件中的下列参数:

logger.log.level=SEVERE

默认情况下,日志级别设置为 SEVERE。有效值为 ALL、OFF、INFO、WARNING、SEVERE。

logger.file.dir=/var/opt/SUNWam/debug

该参数指定所部署 portlet 应用程序日志文件的存储目录。

validate_schema=true

该参数指定是否应在部署期间执行模式验证。

语法

本部分介绍 pdeploy 命令的语法。

短名称格式

pdeploy deploy -u uid -w password {-g|-d dn} -p webcontainerpassword -V -r rolesfile -f userinfofile -v -l warfile

pdeploy undeploy -u uid -w password {-g|-d dn} -p webcontainerpassword -V -v -l warfile

长名称格式

pdeploy deploy --runasdn uid --password password {--global|--dn dn} --wc_password webcontainerpassword --rolesfile rolesfile --userinfofile userinfofile --verbose --locale warfile

pdeploy deploy --help

pdeploy deploy --version

pdeploy undeploy --runasdn uid --password password {--global|--dn dn} --wc_password password --verbose --locale portletwebapp

pdeploy undeploy --help

pdeploy undeploy --version

子命令

pdeploy 命令接受以下子命令:

deploy

说明

如果子命令为 deploypdeploy 命令会将 portlet 网络应用程序部署到 Portal Server 中。该命令完成后,您可以基于所部署 portlet 网络应用程序中定义的 portlet 来创建频道。

语法

pdeploy deploy -u uid -w password {-g|-d dn} -p webcontainerpassword warfile

pdeploy deploy -h|--help

选项

表 14-2 介绍了所支持的选项,其中包含两列:第一列列出了 deploy 子命令可能的选项、参数或操作数;第二列给出了简要说明。

表 14-2 deploy 子命令选项 

选项

说明

-v--verbose

产生调试消息。

-d --dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。选项 -d 或Cg,二者必居其一。

-f--userinfofile

指定包含用户信息映射信息的文件。

-g --global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。选项 -d 或Cg,二者必居其一。

--help

将帮助消息打印至标准输出。

-l --locale

打印语言环境信息。

-p--wc_password

指定网络容器口令。该选项是必需的。

-r--rolesfile

指定包含 Sun ONE Identity Server 软件与 portlet 应用程序角色映射信息的文件。

-u --runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-V--version

产生版本信息。

-w --password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

表 14-3 deploy 子命令操作数 

操作数

说明

warfile

指定 war 文件的路径。

示例

例 1    

在下例中,pdeploy 命令会将 /tmp/SamplePortletApp.war 部署到 Portal Server 中。

pdeploy deploy -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w admin -p sunone -g /tmp/SamplePortletApp.war

例 2    

portlet 应用程序有时会在 portlet.xml 文件中定义逻辑角色。部署期间,需要将逻辑角色映射到系统中定义的实际角色。为达到这一目的,需提供一个角色映射文件。

角色映射文件应包含 ActualRole=LogicalRole 条目。所提供的文件必须遵循 Java 属性文件格式。例如:

cn\=HRManager,dc\=iplnaet,dc\=com=Manager

cn\=Emp,dc\=iplnaet,dc\=com=Employee

以下 pdeploy 命令将提供用于在 portlet 应用程序中部署 SamplePortletApp.war 文件的角色映射文件。

pdeploy deploy -u “uid=amAdmin,ou=People,o=sesta.com,o=isp” -w admin -p sunone -r /tmp/RoleMaps -g /tmp/SamplePortletApp.war

例 3    

portlet 应用程序有时需要访问与每个用户相关的信息。在部署期间,必须将逻辑用户信息条目名映射到系统中定义的实际用户信息条目名。为在部署期间达到这一目的,可以提供用户信息条目映射。

用户信息文件应包含 ActualEntryName=LogicalEntryName 条目。例如:

lastname=lname

firstname=fname

以下 deploy 命令将提供用于在 portlet 应用程序中部署 SamplePortletApp.war 文件的用户信息文件。

pdeploy deploy -u “uid=amAdmin,ou=People,o=sesta.com,o=isp” -w admin -p sunone -f /tmp/UserInfoMaps -g /tmp/SamplePortletApp.war

undeploy

说明

undeploy 子命令会从 Portal Server 中删除 portlet 应用程序。但是,它并不会全部删除已为 portlet 网络应用程序中定义的 portlet 所创建的所有频道定义。必须手动删除与(将要删除的)portlet 网络应用程序相关联的所有频道。

语法

pdeploy undeploy -u uid -w password {-g|-d dn} -p webcontainerpassword -v portletwebapp

pdeploy undeploy -h|--help

选项

表 14-4表 14-5 介绍了所支持的选项,它们均包含两列:第一列列出了 undeploy 子命令可能的选项、参数或操作数;第二列给出了简要说明。

表 14-4 undeploy 子命令选项  

选项

说明

-v--verbose

产生调试消息。

-d --dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。选项 -d 或 g,二者必居其一。

-g --global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。选项 -d 或 g,二者必居其一。

--help

将帮助消息打印至标准输出。

-l --locale

提供语言环境信息。

-p--wc_password

指定网络容器口令。该选项是必需的。

-u --runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-V--version

产生版本信息。

-w --password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

表 14-5 undeploy 子命令操作数  

操作数

说明

portletwebapp

指定所部署的 portlet 网络应用程序的名称。该名称通常与 war 文件名相同,只是不带扩展名 .war

示例    

以下 pdeploy 命令会从 Portal Server 中取消部署名为 SamplePortletApp 的 portlet 网络应用程序。

pdeploy undeploy -u “uid=amAdmin,ou=People,o=sesta.com,o=isp” -w admin -g


dpadmin

说明

dpadmin 命令允许使用子命令在显示配置文件文档中检索、添加、修改和删除显示配置文件对象。与显示配置文件对象的所有交互都必须以其本地 XML 格式进行。dpadmin 命令只能对单个显示配置文件文档进行操作。

dpadmin 命令需要下列各项:

语法

本部分介绍 dpadmin 命令的语法。不能在同一命令行中混合使用长名称和短名称选项。

短名称格式

$ dpadmin list|merge|modify|add|remove [command-specific options] -u uid   
-w password {-g|-d dn} [-l locale] [-r] [-b] [-V] [-h] [file]

$ dpadmin batch [-c] -f batch-script-filename [-l locale] [-b] [-h]

长名称格式

$ dpadmin list|merge|modify|add|remove [command-specific options] --runasdn uid --password password {--global|--dn dn} [--locale locale] [--dryrun] [--verbose] [--version] [--help] [file]

$ dpadmin --version

$ dpadmin batch [--continue] --file batch-script-filename [--locale locale] [--verbose] [--help]

子命令

dpadmin 命令接受以下子命令:

list

说明

这条子命令从指定的显示配置文件文档中检索指定的显示配置文件节点对象。如果未指定任何显示配置文件节点对象,则会检索整个显示配置文件文档。显示配置文件对象以其本地 XML 格式显示于标准输出。

list 子命令接受以下选项:

语法

$ dpadmin list -u|--runasdn uid -w|--password password {(-g|--global)|(-d|--dn dn)} [-n|--name name]

$ dpadmin list -h|--help

选项

表 14-6 包含两列:第一列列出了 list 子命令可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-6 list 子命令选项

参数/操作数

说明

-d--dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。-d-g 选项,二者必居其一。

-g--global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。-d-g 选项,二者必居其一。

-n --name

指定要显示的显示配置文件容器、频道或提供者对象的全限定名称。该选项不是必需的。

-u--runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-w--password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

示例
例 1

$ dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com"

本例从 dc=org,dc=com 组织节点获取指定的 TemplateTableContainer 并将其打印至标准输出。

例 2

$ dpadmin list -n mailcheck -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -g

本例转到全局级只是为了获取 mailcheck,如果找到了,会将其打印至标准输出。

例 3

$ dpadmin list -n TemplateTableContainer/Bookmark2 -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com"

本例将获取位于容器 TemplateTableContainer 中名为 Bookmark2 的频道并将其打印至标准输出。

merge

说明

这条子命令检索并显示指定 DP 节点对象的合并结果。对象以其本地 XML 格式显示。会将要显示的对象发送至标准输出。如果不使用 -n 或 --name 选项,则会报告错误。

merge 命令接受下列参数:

--name -n

name 参数指定要显示的 DP 容器、频道或提供者对象的全限定名称。如果缺少 name 参数,则会显示整个 DP 文档。如果 name 参数未指明 DP 节点对象,则会报告错误。


注意

merge 子命令只显示对象的合并视图,并且不会保留结果。运行这条子命令不会影响底层数据。   


示例

$ dpadmin list -n “Bookmark” \

-u “uid=amAdmin,ou=People,dc=iplanet,dc=com” -w joshua \

-d “dc=iplanet,dc=com”

<Channel name=”Bookmark” provider=”BookmarkProvider”>

<Properties merge=”fuse” lock=”false” name=”_properties”>

<String name=”title” value=”My Bookmarks” merge=”replace” lock=”false”/>

<String name=”refreshTime” value=”600” merge=”replace” lock=”false”/>

<Collection name=”targets” merge=”fuse” lock=”false”>

<String value=”Sun home page|http://www.sun.com” merge=”replace” lock=”false”/>

<String value=”Everything you want to know about Sun ONE ...|http://www.sun.com/software/products/portal_srvr/home_portal.html” merge=”replace” lock=”false”/>

<String value=”Sun ONE home page|http://www.sun.com/software” advanced=”false” merge=”replace” lock=”false”/>

</Collection>

</Properties>

</Channel>

$ dpadmin list -n “Bookmark” \

-u “uid=amAdmin,ou=People,dc=iplanet,dc=com” -w joshua \

-d “cn=HR Role,dc=iplanet,dc=com”

<Channel name=”Bookmark” provider=”BookmarkProvider”>

<Properties merge=”fuse” lock=”false” name=”_properties”>

<String name=”title” value=”HR Admin Bookmarks” merge=”replace” lock=”false”/>

<Collection name=”targets” merge=”fuse” lock=”false”>

<String value=”HR Admin home page|http://hr.acme.com” merge=”replace” lock=”false”/>

</Collection>

</Properties>

</Channel>

$ dpadmin merge -n “Bookmark” \

-u “uid=amAdmin,ou=People,dc=iplanet,dc=com” -w joshua \

-d “uid=hradmin,ou=people,dc=iplanet,dc=com”

<Channel name=”Bookmark” provider=”BookmarkProvider”>

<Properties merge=”fuse” lock=”false” name=”_properties”>

<String name=”title” value=”HR Admin Bookmarks” merge=”replace” lock=”false”/>

<Collection name=”targets” merge=”fuse” lock=”false”>

<String value=”Sun home page|http://www.sun.com” merge=”replace” lock=”false”/>

<String value=”Everything you want to know about Sun ONE ...|http://www.sun.com/software/products/portal_srvr/home_portal.html” merge=”replace” lock=”false”/>

<String value=”Sun ONE home page|http://www.sun.com/software” advanced=”false” merge=”replace” lock=”false”/>

<String value=”HR Admin home page|http://hr.acme.com” merge=”replace” lock=”false”/>

</Collection>

<Collection name=”GlobalThemes” merge=”fuse” lock=”false”>

<Collection name=”theme1” merge=”fuse” lock=”false”>

<String name=”description” value=”Sun ONE” merge=”replace” lock=”false”/>

...

</Collection>

</Collection>

<Collection name=”locales” merge=”fuse” lock=”false” propagate=”true” advanced=”false”>

<String name=”en_US” value=”English (United States)” merge=”replace” lock=”false”/>

</Collection>

<String name=”docroot” value=”/docs/” merge=”replace” lock=”false”/>

<String name=”helpURL” value=”desktop/usedesk.htm” merge=”replace” lock=”false”/>

</Properties>

</Channel>

这是用户 hradmin 的“书签”频道的合并结果,该用户被分配到 HR Role 角色。 


注意

merge 子命令的输出结果为聚集结果,这表示将会列出所有可用的 DP 对象。例如,诸如 GlobalThemeslocales 等属性虽然未在“书签”定义中明确定义,但它们仍会在输出结果中出现,因为这些属性是从“书签”频道的一个或多个父项中合并进来的。


modify

说明

这条子命令会更改现有显示配置文件对象的值。提供给 dpadmin modify 命令的数据或者来自一个或多个输入文件,或者来自标准输入(跟在命令后的 XML 片段)。

该 XML 数据始终都需要一个适当的 XML 标题和一个名称,后者唯一定义了要修改的显示配置文件对象。下例给出了一个适当的 XML 标题:

  <?xml version="1.0" encoding="utf-8" standalone="no"?>

  <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

modify 子命令的语义会随着将要修改的显示配置文件对象的类型而变化。当指定了 combine 选项时,显示配置文件对象中的新元素(如属性)将会与现有元素合并在一起而不是替换它们。modify 子命令有下列变化形式:

modify 子命令接受以下选项:

语法

$ dpadmin modify -u|--runasdn uid -w|--password password {(-g|--global)|(-d|--dn dn)} [-p|--parent parent] [-m|--combine]  file|<<EOF

$ dpadmin modify -h|--help

选项

表 14-7 包含两列:第一列列出了 modify 子命令可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-7 modify 子命令选项

参数/操作数

说明

-d--dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。-d-g 选项,二者必居其一。

-g--global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。-d-g 选项,二者必居其一。

file

如果存在,file 参数必须为命令行上的最后一个参数。它用于指定 XML 文件的路径,该文件所包含的 XML 片段与显示配置文件 DTD 一致。如果 modify 子命令缺少 file 参数,则必须将输入由标准输入重定向到 dpadmin

-m--combine

将指定的显示配置文件对象与新的显示配置文件对象合并在一起。combine 选项只能与下列显示配置文件对象联用:“显示配置文件”根、“频道”、“容器”、“属性”、“可用”、“选定”、“集合”和“语言环境”。该选项是可选的。

-p --parent

指定要修改的显示配置文件对象的父项的全限定名称。该选项是可选的。

-u--runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-w--password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

示例
例 1

$ dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com" <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<Channel name="NewNews" provider="newsprovider">

  <Properties>

    <String name="title" value="News Channel"/>

    <String name="description" value="This channel is all about news"/>

  </Properties>

</Channel>

EOF

在本例中,用标准输入中指定为 XML 文本的值来修改(替换)容器 TemplateTableContainer 中名为 NewNews 的频道。

例 2

$ dpadmin modify -p TemplateTableContainer/NewNews -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com" farble.xml

本例在频道 NewNews 中,用 farble.xml 文件中的新对象来替换文件 farble.xml 中指定的属性,其中 farble.xml 包含以下内容:

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<String name="welcome" value="Hi, welcome to farble land!!!!"/>

例 3

$ dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=people,dc=org,dc=comp" -w joshua -d "dc=org,dc=com"

...

<Collection name="news">

  <Collection name="bar">

    <String name="msg" value="hi"/>

  </Collection>

</Collection>

...

$ dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,dc=org,dc=com" -w joshua -d "dc=org,dc=com" -m <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<Collection name="news">

  <Collection name="bar">

    <String name="msg2" value="woo hoo"/>

  </Collection>

</Collection>

EOF

$ dpadmin list -n TemplateTableContainer -u "uid=amAdmin,dc=org,dc=com" -w joshua -d "dc=org,dc=com"

...

<Collection name="news">

  <Collection name="bar">

    <String name="msg" value="hi"/>

    <String name="msg2" value="woo hoo"/>

  </Collection>

</Collection>

...

本例使用 combine 选项,将名为 "msg2" 的新属性添加到名为 "bar" 的集合中。注意,现有属性 "msg" 仍留在结果中。

例 4

$ dpadmin list -n test -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com"

<Container name="test" provider="testprovider">

  <Properties>

    <String name="title" value="test"/>

  </Properties>

  <Available/>

  <Selected/>

  <Channels>

    <Channel name="test1" provider="test1provider">

      <Properties>

        <Collection name="news">

          <String name="msg1" value="blah"/>

          <Collection name="bar">

            <String name="msg2" value="hi"/>

          </Collection>

        </Collection>

      </Properties>

    </Channel>

  </Channels>

</Container>

$ dpadmin modify -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com" -m <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<Container name="test" provider="testprovider">

  <Properties>

    <String name="title" value="Test Container"/>

  </Properties>

  <Available>

    <Reference value="test1"/>

  </Available>

  <Selected>

    <Reference value="test1"/>

  </Selected>

  <Channels>

    <Channel name="test1" provider="test1provider">

      <Properties>

        <Collection name="news">

          <String name="msg1" value="123"/>

          <Collection name="bar">

            <String name="msg3" value="123/>

          </Collection>

        </Collection>

      </Properties>

    </Channel>

  </Channels>

</Container>

EOF

$ dpadmin list -n test -u "uid=amAdmin,ou=people,dc=org,dc=com" -w joshua -d "dc=org,dc=com"

<Container name="test" provider="testprovider">

  <Properties>

    <String name="title" value="Test Container"/>

  </Properties>

  <Available>

    <Reference value="test1"/>

  </Available>

  <Selected>

    <Reference value="test1"/>

  </Selected>

  <Channels>

    <Channel name="test1" provider="test1provider">

      <Properties>

        <Collection name="news">

          <String name="msg1" value="123"/>

          <Collection name="bar">

            <String name="msg2" value="hi"/>

            <String name="msg3" value="123"/>

          </Collection>

        </Collection>

      </Properties>

    </Channel>

  </Channels>

</Container>

本例用新值来替换 "title" 和 "msg1" 的值。AvailableSelected 都添加了一个 Reference value"news" 集合中增添了 "msg3"。本例说明,可在必要时与 modify 子命令一同使用 -m 或 -combine 选项来进行合并和替换。

例 5

$ dpadmin list -n test \

-u "uid=amAdmin,ou=People,dc=iplanet,dc=com" -w joshua \

-d "dc=iplanet,dc=com"

<Channel name="test" provider="testprovider">

<Properties>

<Collection name="foo">

<String name="foo1" value="bar"/>

</Collection>

</Properties>

</Channel>

$ dpadmin modify -p test \

-u "uid=amAdmin,ou=People,dc=iplanet,dc=com" -w joshua \

-d "dc=iplanet,dc=com" -m <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<ConditionalProperties condition="client" value="nokia">

<Collection name="foo">

<String name="foo1" value="nokia bar"/>

</Collection>

</ConditionalProperties>

EOF

$ dpadmin list -n test \

-u "uid=amAdmin,ou=People,dc=iplanet,dc=com" -w joshua \

-d "dc=iplanet,dc=com"

<Channel name="test" provider="testprovider">

<Properties>

<Collection name="foo">

<String name="foo1" value="bar"/>

</Collection>

<ConditionalProperties condition="client" value="nokia">

<Collection name="foo">

<String name="foo1" value="nokia bar"/>

</Collection>

</ConditionalProperties>

</Properties>

</Channel>

$ dpadmin modify -p test \

-u "uid=amAdmin,ou=People,dc=iplanet,dc=com" -w joshua \

-d "dc=iplanet,dc=com" -m <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<ConditionalProperties condition="client" value="nokia">

<ConditionalProperties condition="locale" value="en">

<String name="abc" value="nokia en abc"/>

</ConditionalProperties>

</ConditionalProperties>

EOF

$ dpadmin list -n test \

-u "uid=amAdmin,ou=People,dc=iplanet,dc=com" -w joshua \

-d "dc=iplanet,dc=com"

<Channel name="test" provider="testprovider">

<Properties>

<Collection name="foo">

<String name="foo1" value="bar"/>

</Collection>

<ConditionalProperties condition="client" value="nokia">

<Collection name="foo">

<String name="foo1" value="nokia bar"/>

</Collection>

<ConditionalProperties condition="locale" value="en">

<String name="abc" value="nokia en abc"/>

</ConditionalProperties>

</ConditionalProperties>

</Properties>

</Channel>

本例使用 Combine 选项来添加条件属性。

add

说明

这条子命令可将新的显示配置文件对象添加到显示配置文件中。该子命令要求显示配置文件中不存在要添加的对象。add 子命令可从标准输入或从指定为命令参数的一个或多个文件中为新对象读取数据。新对象的数据必须为 XML 并且要与 Sun ONE Portal Server 显示配置文件 DTD 一致。

该 XML 数据始终都需要一个合适的 XML 标题和一个名称,后者唯一定义了要修改的显示配置文件对象。下例给出了一个适当的 XML 标题:

  <?xml version="1.0" encoding="utf-8" standalone="no"?>

  <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">


注意

附录 B 中包含有显示配置文件 DTD。


add 子命令的语义会随着将要添加的显示配置文件对象的类型而变化。如下所示:

add 子命令接受以下选项:

语法

$ dpadmin add -u|--runasdn uid -w|--password password {(-g|--global)|(-d|--dn dn)} [-p|--parent parent] file|<<EOF

$ dpadmin add -h|--help

选项

表 14-8 包含两列:第一列列出了 add 子命令可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-8 add 子命令选项

参数/操作数

说明

-d--dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。-d-g 选项,二者必居其一。

-g--global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。-d-g 选项,二者必居其一。

file

如果存在,file 参数同时必须为命令行上的最后一个参数。它用于指定 XML 文件的路径,该文件所包含的 XML 片段与显示配置文件 DTD 一致。如果 add 子命令缺少 file 参数,则必须将输入由标准输入重定向到 dpadmin

-p --parent

指定要添加的显示配置文件对象的父项的全限定名称。

-u--runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-w--password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

示例

$ dpadmin add -p SampleTabPanelContainer/Postal -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp" <<EOF

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

<Collection name="zipCodes">

   <Integer value="98012"/>

   <Integer value="98036"/>

   <Integer value="94025"/>

   <Integer value="95112"/>

</Collection>

EOF

在本例中,该命令将标准输入中指定的名为 "zipCodes" 的集合属性添加至名为 SampleTabPanelContainer 的容器中的名为 Postal 的频道。

remove

说明

这条子命令会从显示配置文件中删除现有显示配置文件对象。如果要删除的对象在指定的显示配置文件文档中不存在,则会报告错误。这条子命令接受 typeparentname 选项。

type 选项指定要删除的显示配置文件对象的类型。parent 选项指定要从中删除显示配置文件对象的父显示配置文件对象的全限定名称。父显示配置文件对象类型会随着将要删除的显示配置文件对象的类型而变化。name 选项指定要删除的对象的名称。

parentname 选项的语义会随着将要删除的显示配置文件对象的类型而变化。表 14-9 包含两列:第一列列出了 type 选项可能的值;第二列对删除的确切内容作了简要说明。

表 14-9 dpadmin remove 中的 parent 和 name 的语义

type 选项的值

parent 和 name 选项的语义

root

distinguishedname 选项所指定的 LDAP 节点中删除整个显示配置文件文档,或是在提供了 -g (--global) 选项时从全局级显示配置文件所指定的 LDAP 节点中删除整个显示配置文件文档。当 type=root 时,不需要 name 选项。

channel

name 选项是必需的。如果缺少 parent 选项,则假定父容器为根显示配置文件节点。否则,将假定 parent 选项为要删除的频道的父容器名称。name 选项指定要删除的频道或容器的名称。

provider

由于提供者驻留在根显示配置文件节点下,所以不必指定 parent 选项。name 选项是必需的,它指定要删除的提供者。

property

parent 选项指定要从中删除属性的父容器、频道或提供者对象的全限定名称。如果缺少 parent 选项,则假定根显示配置文件节点为父对象。

name 选项指定要删除的属性的名称。如果缺少 name 选项,则会报告错误。对于未命名的显示配置文件属性,名称等于该值的字符串表示。

availableselected

parentname 选项都是必需的。parent 选项负责提供要从中删除可用(选定)引用的父容器或频道对象的名称。name 选项给出要删除的引用的值。如果缺少 name 选项,则会报告错误。

remove 子命令接受以下选项:

语法

$ dpadmin remove -u|--runasdn uid -w|--password password {(-g|--global)|(-d|--dn dn)} [-n|--name name] [-p|--parent parent] -t|--type type

$ dpadmin remove -h|--help

选项

表 14-10 包含两列:第一列列出了 remove 子命令可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-10 remove 子命令选项

参数/操作数

说明

-d --dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。-d-g 选项,二者必居其一。

-g --global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。-d-g 选项,二者必居其一。

-n --name

指定要删除的显示配置文件容器、频道或提供者对象。该选项是必需的,除非 type=root

-p --parent

指定要删除的显示配置文件对象的父项的全限定名称。

-t --type

指定将要删除的显示配置文件对象的类型。该选项是必需的。

-u--runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项是必需的。

-w--password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

示例
例 1

$ dpadmin remove -t property -p Bookmarks -n locations -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp"

在本例中,命令从名为 Bookmarks 的频道或容器中删除名为 locations 的属性。

例 2

$ dpadmin remove -t provider -n "pctest" -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -g

从全局显示配置文件中删除提供者 pctest

例 3

$ dpadmin remove --type channel --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=people,o=sesta.com,o=isp" --password joshua --dn "o=sesta.com,o=isp"

在本例中,命令会删除名为 TemplateTableContainer 的父容器中的名为 Test 的频道。

例 4

$ dpadmin list -n X -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp"

<Container name=”X” ...>

  <Channels>

    <Container name=”Y” ...>

      <Channels>

        <Channel name=”z” .../>

      </Channels>

    </Container>

  </Channels>

</Container>

要删除频道 z,可以执行以下任一命令:

$ dpadmin remove -t channel -p X -n Y/z -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp"

$ dpadmin remove -t channel -p X/Y -n z -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp"

$ dpadmin remove -t channel -n X/Y/z -u "uid=amAdmin,ou=people,o=sesta.com,o=isp" -w joshua -d "o=sesta.com,o=isp"

batch

说明

batch 子命令能够以优化方式处理多个显示配置文件命令。这些子命令列于批处理脚本文件中(必需),连续执行。如果出现错误,默认做法是报告错误而后退出。-c 或 --continue 选项指示采用连续处理模式。在这种模式下,出现错误时先报告错误,然后 dpadmin 会继续执行下一条子命令。

命令批处理脚本必须是文本 (ASCII) 文档,可以包含任意多条要输入到 dpadmin 中的子命令,但不能包含 batch 子命令。子命令必须在单行输入(换行符表示命令结束)。对于每条子命令,必须在命令行中指定管理员的区别名和口令。子命令的语法与直接在命令外壳中输入子命令完全一样(不带 dpadmin 部分)。脚本不能包含 XML,因此需要 XML 输入的子命令必须通过文件来获得它。如果区别名(或 DN)包含空格,要在其两旁加上双引号。

下面是批处理脚本文件的示例(每条命令占一行):

add -p PostalMailer -u uid=amAdmin,ou=People,dc=iplanet,dc=com -w joshua -d dc=iplanet,dc=com zipCodes.xml

add -p PostalStamps -u uid=amAdmin,ou=People,dc=iplanet,dc=com -w joshua -d dc=iplanet,dc=com zipCodes.xml stampRates.xml

add -p PostalRates -d "cn=hr role,dc=iplanet,dc=com" zipCodes.xml stampRates.xml

batch 子命令接受 -c --continue 选项并且需要使用 -f --file 指定批处理脚本文件名。

语法

$ dpadmin batch [-c|--continue] -u|--runasdn uid -w|--password password -f|--file batch-script-file

$ dpadmin batch -h|--help

选项

表 14-11 包含两列:第一列列出了 batch 子命令可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-11 batch 子命令选项

参数/操作数

说明

-c --continue

表示连续操作模式。如果指定了该选项,将会报告错误,但 dpadmin 会继续执行下一条子命令。默认情况下,dpadmin 会在报告错误后退出。

-f --file

指定批处理脚本文件。该参数是必需的。

-u --runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项只能与 listmodifyaddremove 子命令一起使用。

该选项是可选的。如果指定了该选项,在整个批处理过程中将会使用此区别名进行验证。另外,批处理脚本中的每条子命令还可以有自身的验证,它会替代上面的区别名。

-w --password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是可选的。如果指定了该选项,在整个批处理过程中将会使用此区别名进行验证。另外,批处理脚本中的每条子命令还可以有自身的验证,它会替代上面的口令。

选项

表 14-12dpadmin 命令进行了总结。此表是按副标题中列出的子命令进行组织的。它包含两列:第一列列出了可能的选项、参数或操作数;第二列给出了简要说明。支持下列选项:

表 14-12 dpadmin 命令选项

参数/操作数

说明

-V --version

dpadmin 指定该选项会向标准输出打印有关此实用程序的说明信息,如版本、法律声明以及其它类似信息。该选项存在时,会忽略任何子命令和其它所有选项。

所有子命令的公共选项

-b --verbose

指定该选项将会产生调试消息。

-h --help

dpadmin 指定该选项会向标准输出打印输出简要的帮助页。如果不存在任何子命令,会打印 dpadmin 的通用帮助页。如果存在某一条 dpadmin 子命令,则会打印该子命令特定的简要帮助页。

-l --locale

使用该选项可按指定语言环境本地化所有调试/错误消息。如果未指定,则默认使用系统语言环境。

listaddmodifyremove 子命令选项

-d --dn

指定 LDAP 节点中用于访问显示配置文件文档的区别名。-d-g 选项,二者必居其一。

-g --global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。-d-g 选项,二者必居其一。

-r --dryrun

向系统输出报告子命令的错误或成功消息。不将子命令的最终更改结果置于 LDAP 中。

-u--runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项只能与 listmodifyaddremove 子命令一起使用。该选项是必需的。

-w--password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。

list remove 子命令选项

-n --name

指定要显示或删除的显示配置文件容器、频道或提供者对象的全限定名称。该选项不是必需的。

addmodifyremove 子命令选项

-p --parent

指定要添加、修改或删除的显示配置文件对象的父项的全限定名称。

addmodify 子命令选项

file

如果存在,file 参数同时必须为命令行上的最后一个参数。它用于指定 XML 文件的路径,该文件所包含的 XML 片段与显示配置文件 DTD 一致并且包含适当的 XML 标题。需要 XML 输入的子命令包括 modifyadd。如果这些子命令缺少 file 参数,则必须将输入由标准输入重定向到 dpadmin

modify 子命令选项

-m --combine

将指定的显示配置文件对象与新的显示配置文件对象合并在一起。该选项只能与 modify 子命令一起使用。combine 选项只能与下列显示配置文件对象联用:“显示配置文件”根、“频道”、“容器”、“属性”、“可用”、“选定”、“集合”和“语言环境”。

remove 子命令选项

-t --type

指定要删除的显示配置文件对象的类型。类型可以是:rootchannelproviderpropertyavailableselected

batch 子命令选项

-c --continue

表示连续操作模式。该选项只可与 batch 子命令一起使用。如果指定了该选项,将会报告错误,但 dpadmin 会继续执行下一条子命令。默认情况下,dpadmin 会在报告错误后退出。

-f --file

指定批处理脚本文件。该 ASCII 文件只可与 batch 子命令一起使用。

-u --runasdn

指定用于绑定到 Directory Server 的用户区别名。该选项只能与 listmodifyaddremove 子命令一起使用。该选项是必需的。

-w --password

指定用于绑定到 Directory Server 的用户区别名的口令。该选项是必需的。


par

说明

par 命令所执行的功能涉及指定的 .par 文件。该命令可用于向 Sun ONE Portal Server 导出或从中导入频道或提供者。

语法

本部分介绍 par 命令的语法。建议不要在同一命令行中混合使用长名称选项和短名称选项。

短名称格式

par containers -r uid -p password [-d] dn|global

par describe [-d] parfile

par export -r uid -p password [-m] [-d] -s staticdir [-v] parfile dn|global {exportfile|from=}...

par import -r uid -p password [-o] [-d] -s staticdir [-v] parfile [dn|global [op...]]

par import -r uid -p password  -a [-d] -s staticdir [-v] parfile [dn|global]

长名称格式

par containers --runasdn uid --password password [--debug] dn|global

par describe [--debug] parfile

par export --runasdn uid --password password [--modify] [--debug] --staticdir staticdir [--verbose] parfile dn|global {exportfile|from=}...

par import --runasdn uid --password password [--overwrite] [--debug] --staticdir staticdir [--verbose] parfile [dn|global [op...]]

par import --runasdn uid --password password --auto [--debug] --staticdir staticdir [--verbose] parfile [dn|global]

子命令

支持下列子命令:

containers

说明

列出特定显示配置文件文档中的所有可用容器和频道,该文档由指定的 Directory Server 名称(或 global)指出。可以使用这个子命令作为一种辅助手段来形式化说明其它命令。

语法

par containers -r|--runasdn uid -p|--password password [-d|--debug] [-v|--verbose] dn|global

示例

par containers -r "uid=amAdmin,ou=people,o=sesta.com,o=isp" -p joshua -d "o=sesta.com,o=isp"

在本例中,命令会列出驻留于 LDAP 节点 "o=sesta.com,o=isp" 的显示配置文件文档中的所有可用容器。

describe

说明

说明指定 .par 文件的内容,包括条目以及为这些条目定义的任何内置自动提取操作。

语法

par describe parfile

示例

par describe myfile.par

在本例中,myfile.par 的命令输出或说明可能与以下内容相仿:

Class Root: /

Property Based File Root:/pbfiles

Display Profile Root:/dp

Static Content Root:/static

Entry:mychannel

AutoExtract:dpnode=o%3Dsesta.com%2Co%3Disp,channel,entry=mychannel

DP Document:this my JSP based channel.

Channel:SampleJSP.a

Includes:Property Based File, root templateBaseDir, path default/mychannel/samplecontent.jsp (channel)

Includes:Property Based File, root templateBaseDir, path default/mychannel/sampledoedit.jsp (channel)

Includes:Property Based File, root templateBaseDir, path default/mychannel/sampleedit.jsp (channel)

Includes:Property Based File, root templateBaseDir, path default_en_US/mychannel/samplecontent.jsp

(channel)

Includes:Property Based File, root templateBaseDir, path default_en_US/mychannel/sampledoedit.jsp

(channel)

Includes:Property Based File, root templateBaseDir, path default_en_US/mychannel/sampleedit.jsp

(channel)

export

说明

用从 Portal Server 中导出的提供者或频道信息来填写指定的 .par 文件。此命令需要一个 .par 文件、一个与想要更新的显示配置文件文档相对应的 Directory Server 名称参数(或关键字 global),以及任意数目(至少需要一个)的 exportfilefrom 说明项。from 说明项包含的信息与导出文件完全相同;唯一的区别是“行”之间是用分号分开的。

不带 -m 选项的 par export 命令会创建一个 .par 文件。带有 -m 选项的 par export 命令用于更新已有的 .par 文件和/或向其中添加内容,该文件定义了提供者、频道或容器。

语法

par export -r|--runasdn uid -p|--password password [-d|--debug] -s|--staticdir staticdir [-v|--verbose] parfile dn|global {exportfile|from=}...

par export -r|--runasdn uid -p|--password password [-d|--debug] -s|--staticdir staticdir [-v|--verbose] -m|--modify parfile dn|global {exportfile|from=}...

示例

par export -r "uid=amAdmin,ou=people,dc=sesta,dc=com" -p joshua mychannel.par "o=sesta.com,o=isp" myexport.txt

这里,myexport.txt 包含以下内容:

from:channel mychannel

directory:templateBaseDir . mychannel

description:this is my JSP based channel

在本例中,命令会从 "dc=sesta,dc=isp" dn 中将 mychannel 的频道定义和模板文件导出到 mychannel.par 中。另外,如果该频道是 JSPProvider 频道,directory 行还会传送所有 .jsp 文件,包括语言环境特定的版本。

import

说明

将对象从指定的 .par 文件导入到 Portal Server 中。此命令接受的选项有:一个 .par 文件,与要将对象导入到 Directory Server 中的所示显示节点的显示配置文件文档(或用关键字 global 指示的根显示配置文件)相应的可选参数,以及要执行的操作。如果未指定这些内容,将会从 .par 文件中来提取。auto 选项可以用来指示您只希望执行 .par 文件中已包含的自动提取操作。

如果要添加新的频道,可以使用带有或不带 -o 选项的 par import 命令。如果频道已存在,必须在 par import 命令中使用 -o 选项来完全替换(覆盖)原有频道。可以使用这条子命令导入提供者以及频道。

语法

par import -r|--runasdn uid -p|--password password [-o] [-d|--debug] -s|--staticdir staticdir [-v|--verbose] parfile [dn|global [op...]]

par import -r|--runasdn uid -p|--password password -a|--auto [-d|--debug] -s|--staticdir staticdir [-v|--verbose] parfile [dn|global]

示例
例 1

par import -r "uid=amAdmin,ou=people,o=sesta.com,o=isp" -p joshua --auto myfile.par "o=sesta.com,o=isp"

在本例中,命令会从 myfile.par 文件中提取频道,前提是在 myfile.par parfile 中定义了此项自动操作。

例 2

par import -r "uid=amAdmin,ou=people,o=sesta.com,o=isp" -p joshua myfile.par "o=sesta.com,o=isp" "entry=mychannel,channel=anothername,avail=topcontainer"

在本例中,命令会显式地提取频道,同时以不同的名称将其安装到目标 dn 中,使其在容器 topcontainer 中可用。

选项

表 14-13 包含两列:第一列列出了 par 命令可能的选项;第二列给出了简要说明。该命令支持下列选项(按字母顺序列出):

表 14-13 par 命令选项

选项

说明

 

 

-a --auto

import 命令一起使用,以应用来自 .par 文件中的自动提取操作。此时,不能在命令行中指定任何操作。但仍可以指定 dn 参数;如果指定了该参数,它会替换自动提取操作中的 dn。如果在命令行中指定了操作,它们将被忽略。

-d --debug

指定该选项可在错误消息中产生附加调试消息。

-m --modify

export 命令一起使用,以更新现有 .par 文件而不是替换它。将会用条目新增的所有文件来补充或替换原有文件。另外,使用该命令还可以通过 .par 文件为现有提供者或频道添加新文件。

-o --overwrite

import 命令一起使用,以替换现有频道。

-p --password

指定验证时用的口令。除 describe 之外,该选项对于所有子命令都是必需的。如果未指定,par 实用程序会对此予以提示。

-r --runasdn

指定验证时用的用户区别名。除 describe 之外,该选项对于所有命令都是必需的。如果未提供,par 实用程序会对此予以提示。使用格式为 uid=userName,ou=people,o=organizationName,o=organizationalUnit

-s --staticdir

定义用于导入或导出的静态内容目录的主机特定目录。

-v --verbose

在执行操作时对其进行说明。与 importexport 命令一起使用。

-V --version

par 指定该选项会向标准输出打印有关此实用程序的说明信息,如版本、法律声明以及其它类似信息。该选项存在时,会忽略任何子命令和其它所有选项。

-?

获取任意子命令的帮助信息。

参数

表 14-14 包含两列:第一列列出了 par 命令可能的参数;第二列给出了简要说明。该命令接受下列参数:

表 14-14 par 命令参数

参数

说明

dn

指定 Directory Server 中要访问的区别节点。使用格式为 "o=organizationName,o=organizationalUnit"

global

指定 LDAP 中用于访问显示配置文件文档的全局级节点。

exportfile

这些文件分别对应于 .par 文件中的一个条目(提供者、频道或提供者/频道组合),它们只指定了要插入到指定 .par 文件中的数据。如果信息太大无法在命令行中列出,可以将信息放到一个小型文件中。有关详细信息,请参阅导出文件

from

在命令行中指定,采用该选项等效于包含“from”行的导出文件,其后跟有等号(“=”)以及用分号(“;”)分隔的其它各行。有关行属性的详细信息,请参阅表 14-15 中的 from。

op

指定要执行的操作。有关详细信息,请参阅操作

parfile

指定要对其进行操作的 par 文件;即指出要导入、导出或说明的 par 文件。

导出文件

这些文件只指定要插入到 .par 文件中的数据。文件由若干行组成,每行包含一个关键字,其后跟有一个冒号以及若干用空白字符隔开的字段。“from:”行是必需的,并且它必须为文件的首行。以“#”开头的行被视为注释行。

表 14-15 包含两列:第一列列出了可能的行关键字;第二列给出了简要说明。

表 14-15 导出文件行属性

说明

from:types name

“from”指示将要导出的实体。types 可以是“channel”、“provider”或“channel,provider”和“channel+provider”。name 指示频道名称或提供者名称(如果将要导出的是提供者)。如果名称含有空白 (+)、逗号 (%2C)、冒号 (%3A)、分号 (%3B)、加号 (%2B) 或百分号 (%25),则 name 必须为编码 URL。

auto:none

“auto”指定对进行条目自动提取操作。它接受 op 参数,该参数跟在操作后面。还可以输入“none”来禁止自动提取。如果未指定“auto:”行,则会产生默认的自动提取操作。默认操作是提取具有原始名称的频道和/或提供者。

auto:op

file:root|. path [types]

“file”指示要基于某项属性设置加入一个文件。此属性或者可以来自“桌面属性”文件,该文件默认位于 /etc/opt/SUNWps/desktop/desktopconfig.properties 文件中,或者可以来自 getProperty() 调用可见的显示配置文件,该调用针对的是将要导出或导入的项目。root 指定文件位置的根,path 指定文件的其余路径。root 是与目录(类似项)相对应的属性名。如果给定 root 为“.”,则会假定文件为位于Web 服务器文档根处的静态内容。还可以指定要与文件关联的操作类型,默认为“channel”。types 可以是“channel”、“provider”或“channel,provider”和“channel+provider”。

class:class [types]

“class”指示要将类文件与条目包裹在一起,可选地,您还可以指定与类文件相关联的操作类型。如果未指定,则会采用“provider”。types 可以是“channel”、“provider”或“channel,provider”和“channel+provider”;另外,还可以使用空格同时指定二者。

directory:root|. dir +|.|filter [types]

“directory”表示用将要加入的所有非目录文件搜索整个目录,就像这些文件是以“file”行形式输入的。它还具有指定“filter”的能力,后者是进行递归目录搜索时必须提供的目录成分。root 指定目录的根,或者可用“.”来表示静态内容。dir 是根下的起始搜索目录,如果给定该目录为“.”,将会从根自身开始搜索。filter 指定目录中必须存在的过滤成分,这表示将要进行递归下降搜索。可将其给定为“+”来进行无过滤递归下降搜索,如果给定为“.”,则不进行递归下降搜索(只是实际目录的内容)。还可以指定操作类型,默认为“channel”。types 可以是“channel”、“provider”或“channel,provider”和“channel+provider”。

entry:name

“entry”指定在 .par 文件中使用的条目名称。如果未指定,则它默认为“from:”行中的名称。

desc:text

可以出现任意多个“desc”行,将这些行连接起来就成为用户可见的说明,该说明与条目包裹在一起。

操作

必须将导出文件或命令行中的每项操作 (op) 指定为以逗号分隔的关键字列表形式,关键字可以有值,其中大多数是可选的。操作位于以空白或空格分隔的列表中。每项操作均采用以下格式。

dpnode=dn,entry=name,provider[=name],channel[=name],container=name[,avail=name,selected]

dpnode

该项指定 Directory Server(或关键字 global)中与本操作所针对的显示配置文件文档相应的区别名。如果目前指定该名称时所在的环境已提供了此名称,则该项有可能不起作用。例如,如果 import 子命令定义了区别名,则会忽略文件中的区别名。

entry

该项指定 .par 文件中的条目名称。该项在下列情况下不需要:

如果未指定条目,par 实用程序默认作用于文件中的第一个条目。

provider

该项指示要进行提供者提取操作。如果缺少名称,它便会使用与 .par 文件中的提供者包裹在一起的名称。

channel

该项指示要进行频道提取操作。如果缺少名称,它便会使用与 .par 文件中的频道包裹在一起的名称。

container

该项只适用于频道提取,指示要将频道插入到哪个容器中。如果省略,则会将频道插入到显示配置文件文档根处的“频道”元素中。

avail

该项只适用于频道提取,指示哪个容器的“avail”(可用)列表将要接收新频道的引用。如果省略,则不创建新频道引用。

selected

该项仅在使用了“avail”时才适用。它指示“avail”列表收到引用的容器还在其“selected”列表中放置了一个引用。

par import 命令和 .par 文件中均有 op 信息时,命令信息优先。

Par 文件

本部分包含有关 par 文件格式的补充信息。该信息并非是运行 par 命令所必需的。

par 文件是一种 jar 文件,其中明示了要传输频道、提供者及其相关文件的条目。其目的是为了在安装提供者、频道或同时安装这两者时提供较大的灵活性。.par 文件包含以下 4 种主要文件类型:

  1. 包含显示配置文件提供者和/或频道信息的 XML 文档。这种文档为“parEntry”,如显示配置文件 DTD 中所述。该 parEntry 包含频道、提供者或频道/提供者组合。
  2. 与提供者和/或频道相关联的类文件。
  3. 基于属性的文件。这些文件是与频道、portlet 或提供者(通常为频道)相关联的一般文件,必须部署在 Portal Server 上的某个可配置的根下。
  4. 静态内容文件。这些文件作为文档部署在Web 服务器上。

Par 文件内容

表 14-16 包含两列:第一列列出了必需的全局标题;第二列给出了简要说明。.par 文件必须包含下列标题:

表 14-16 全局标题

标题

说明

PS-Version

指定 .par 文件特定于 Portal Server 的版本号。同时验证该文件是否是 .par 文件。

PS-DefaultEntry

为涉及未命名条目的操作所使用的条目命名。

PS-DPRoot

分别指示 parEntry 文档、类、基于属性的文件和静态内容在归档文件中的根目录。如果未指定,相应文件的根将位于归档文件的顶端。

 

PS-ClassRoot

PS-PBFileRoot

PS-StaticRoot

.par 文件中,每个 parEntry XML 文件都必须有一个已命名条目。表 14-17 包含两列:第一列列出了可能的标题;第二列给出了简要说明。与每个已命名条目相应的部分可能包含下列标题:

表 14-17 已命名条目标题

标题

说明

PS-EntryName

指定命令可见的条目名称。

PS-AutoExtract

指定与条目相应的自动提取操作(如果存在这样的操作)。

PS-Include

包含以逗号分隔的归档文件列表,这些文件由它们的实际归档路径指定。此路径隐含表示根据“root”说明,这些文件应为何种文件类型。这些文件后面附加有一个用括号括起来的编号,此编号对应于文件适用的操作类型(含有 1 的特征码代表提供者,2 代表频道)。如果除 XML 文档以外再无其它文件与条目相关联,可以忽略该项。

由于在未命名任何条目时默认条目就是所使用的条目,因此,如果 .par 文件只包含一个条目,在对文件进行操作时无需为条目命名。


rwadmin

说明

rwadmin 命令使管理员能够管理在 iPlanet Directory Server Access Management Edition 重写器服务中可用的重写器数据。

语法

本部分介绍 rwadmin 命令的语法。

短名称格式

rwadmin list -u uid -w password [-l locale] [-b] [-h]

rwadmin store -u uid -w password [-l locale] [-b] [-h] filename

rwadmin get -r rulesetname -u uid -w password [-l locale] [-b] [-h] [filename]

rwadmin remove -r rulesetname -u uid -w password [-l locale] [-b] [-h]

长名称格式

rwadmin list --runasdn uid --password password [--locale locale] [--verbose] [--version] [--help]

rwadmin store --runasdn uid --password password [--locale locale] [--verbose] [--version] [--help] filename

rwadmin get --rulesetid rulesetname --runasdn uid --password password [--locale locale] [--verbose] [--version] [--help] [filename]

rwadmin remove --rulesetid rulesetname --runasdn uid --password password [--locale locale] [--verbose] [--version] [--help]

子命令

支持下列子命令:

list

说明

该命令会列出所有可用规则集名称。

语法

rwadmin list -u|--runasdn uid -w|--password password

示例

rwadmin list -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w joshua

在本例中,命令显示所有可用规则集的名称。

store

说明

该命令将本地文件系统中可用的“规则”存储到 iPlanet Directory Server Access Management Edition 中。若要存储 DefaultRuleSet,请使用以下命令:

rwadmin store -u uid -w password /resources/DefaultRuleSet.xml

其中,/resources/DefaultRuleSet.xml 是“规则集”在 rewriter.jar 文件中的存储位置。注意,执行该命令时,如果已存在具有相同 ID 的规则集,则不会存储任何新数据。请删除现有 ID 后重试。

语法

rwadmin store -u|--runasdn uid -w|--password password filename

示例

rwadmin store -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w joshua /opt/data/ExampleRuleSet.xml

在本例中,命令将 /opt/data/ExampleRuleSet.xml 上可用的“规则”存储到 iPlanet Directory Server Access Management Edition 中。

get

说明

该命令从 iPlanet Directory Server Access Management Edition 中获取“规则集”。如果提供了 filename,会将检索到的“规则集”存储到指定文件中,否则会将其显示在 stdout(或控制台)中。

语法

rwadmin get -r|--rulesetid ruleset -u|--runasdn uid -w|--password password [filename]

示例
例 1

rwadmin get -r “ExampleRuleSet” -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w joshua

在本例中,命令从 iPlanet Directory Server Access Management Edition 中检索名为 ExampleRuleSet 的“规则集”并将其显示在控制台上。

例 2

rwadmin get -r “ExampleRuleSet” -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w joshua /tmp/abc.xml

在本例中,命令从 iPlanet Directory Server Access Management Edition 中检索名为 ExampleRuleSet 的“规则集”并将其保存在 /tmp 目录下的文件 abc.xml 中。

remove

说明

该命令从 iPlanet Directory Server Access Management Edition 中删除“规则集”。该命令删除“规则集”时不会发出任何警告。

语法

rwadmin remove -r|--rulesetid ruleset -u|--runasdn uid -w|password password

示例

rwadmin remove -r “ExampleRuleSet” -u “uid=amAdmin,ou=people,o=sesta.com,o=isp” -w joshua

在本例中,命令从 iPlanet Directory Server Access Management Edition 删除名为 ExampleRuleSet 的“规则集”。

选项

表 14-18rwadmin 命令进行了总结。它包含两列:第一列列出了可能的选项;第二列给出了简要说明。此命令支持下列选项(按字母顺序列出):

表 14-18 rwadmin 命令选项

选项

说明

-b --verbose

rwadmin 指定该参数将提供执行命令时发生的详细情况

filename

store 子命令一同指定该选项时,用于指示在向 iPlanet Directory Server Access Management Edition 中进行导入时从中获取“规则集”数据的文件。与 get 子命令一同指定该选项时,用于指示应将检索到的“规则集”数据存储在哪个文件中。

-h --help

rwadmin 指定该选项会向标准输出打印输出简要的帮助页。如果不存在任何子命令,会打印 rwadmin 的通用帮助页。如果存在某一条 rwadmin 子命令,则会打印该子命令特定的简要帮助页。

-l --locale

使用该选项可按指定语言环境本地化所有输出消息。如果未指定,则默认使用系统语言环境。

-r --rulesetid

使用该选项指定要对其进行操作的“规则集”的名称。

-u --runasdn

为该选项指定用于绑定到 Directory Server 的用户区别名。

--version

rwadmin 指定该选项会向标准输出打印有关此实用程序的说明信息,如版本、法律声明以及其它类似信息。该选项存在时,会忽略任何子命令和其它所有参数。

-w --password

为该选项指定用于绑定到 Directory Server 的用户区别名的口令。


rdmgr

说明

rdmgr 命令是管理搜索服务时使用的主要命令。它为管理员提供了两种类型的子命令:一种用于管理资源描述 (RD);一种用于维护数据库。rdmgr 命令通常在具有搜索能力的 Portal Server 实例目录中运行,即 /server-instance-directory/deployment_uri 目录。这是您在安装时所选的部署 uri 路径。如果选择默认 Portal Server 安装,该目录为 /var/opt/SUNWps/https-servername/portal 目录。其中,servername 的值是默认的 Portal Server 实例名 — 您的 Portal Server 的全限定名称。

语法

rdmgr 命令的一般语法如下:

RD 子命令具体遵循以下语法:

数据库维护子命令具体遵循以下语法:

可以使用 -l number 为任意 RD 或数据库子命令设置日志级别数。设置为 1(默认)将会记录所有 rdmgr 命令。数字越大,日志文件所包含的信息越详细。可能的级别为 1 - 100。如果未指定该选项,该命令会采用由 search.conf 文件中的 debug-loglevel 定义的设置。日志文件名是由 search.conf 文件中的 rdmgr-logfile 定义的。

其中,-c search.conf 选项给出了 search.conf 文件的位置。如果不使用该选项,默认值为目前目录中的 config/search.confsearch.conf 文件列有您已设置的所有特定搜索值。

可以使用 -p progress 显示任何 RD 或数据库子命令的进度。如果只输入 -p,进度将显示在 stdout 中。

子命令

支持下列子命令:

资源描述子命令

说明

RD 子命令允许管理员以批处理方式插入或替换 RD、合并经过视图过滤的 RD、检索经过视图过滤的 RD、删除 RD 以及对 RD 进行计数。表 14-19 有两列,第一列列出了子命令,第二列给出了简要说明。

表 14-19 rdmgr RD 子命令 

子命令

说明

-u

插入或替换 RD。如果未指明任何子命令,该子命令将是默认的子命令。

-m

合并经过视图过滤的 RD。

-g

检索经过视图过滤的 RD。

-d

删除 RD。

-n

对 RD 进行计数

-U

将 SOIF 中的数据库转储至 stdout

-L

将数据库中的选定字段列至 stdout。需要 -a att 选项。

语法

#  rdmgr   [-umgdnUL]  [-ACSTNPq]   [-a att,att,...] [-b number

[-c search.conf] [-i charset]  [-o charset] [-j number] [-l number

[-p progress] [-r number] [-s schema] [-y dbname] [filename|-Q query]

选项

表 14-20 有两列,第一列列出了选项或参数,第二列给出了简要说明。支持下列选项:

表 14-20 rdmgr RD 子命令选项 

参数/操作数

说明

-A

不在默认搜索目录下的 config/schema.rdm 文件中使用模式别名。与 um 子命令一起使用。

-C

不在缺少数据库时创建数据库。与 um 子命令一起使用。

-S

禁用模式检查。与 um 子命令一起使用。

-T

对分类法进行操作。分类法用于浏览数据库内容并对其进行分类,它位于默认搜索目录下的 config/taxonomy.rdm 文件中。可与任何资源描述命令一起使用。

-N

在命令中指定的功能只对资源描述中的非持久数据起作用。数据库中的 RD 是由持久和非持久数据合并而成的。

-P

在命令中指定的功能只对资源描述中的持久数据起作用。数据库中的 RD 是由持久和非持久数据合并而成的。

-q

退出时删除 SOIF 输入文件。与 umg d 子命令一起使用。

-a att,att...

指定属性视图列表。att 名称不区分大小写,可以是任意属性,无论它们是否在模式中进行了定义;例如,作者或标题。如果 att 具有多个值,如 class-1class-2class-3,只需输入 class 作为 att 名称。

-b number

将索引批量设置为该 RD 数。与 um 子命令一起使用。

-c search.conf

指定 search.conf 文件的位置。如果不使用该选项,默认值为目前默认搜索目录中的 config/search.conf 文件。否则,必须给出文件的完整路径。

-i charset|-o charset

-i 选项指定输入 SOIF 流的字符集。-o 选项指定输出 SOIF 流的字符集。例如,ISO8859-1、UTF-8、UTF-16。系统支持字符集 ISO8859-1 到 ISO8859-15。-i umd 子命令一起使用。-o gU L 子命令一起使用。

-j number

对检索结果数进行限制。与 u 子命令一起使用。如果未指明,则默认值为无限制,除非使用了 Q 选项(默认值为 20)。

-l number

将日志级别设置为指定的数值。设置为 1(默认)将会记录所有 rdmgr 命令。数字越大,日志文件所包含的信息越详细。可能的级别为 1 - 100。该选项可与所有子命令一同使用。

-p {stdout|stderr|

filename}

将进度信息打印或显示至 stdoutstderr filename 文件。该选项可与所有子命令一同使用。以秒为单位报告计时信息。

-r number

与进度选项一起使用。每隔 number 个 RD 生成一个报告。默认值为 500。与 umgd U 子命令一起使用。

-s schema

指定模式定义文件。如果不使用该选项,默认值为搜索服务器实例目录中的 config/schema.rdm 文件。

-y dbname

指定搜索数据库名。如果是对默认数据库以外的数据库运行这条命令,则需使用该选项。默认数据库在 config/search.conf 文件中定义,形如 datbase-name=logicaldbname

filename|-Q query

该输入选项与 umg d 子命令一起使用。

filename 指包含 RD 的文件,这些 RD 使用 SOIF 格式的默认模式(对于其它任何模式,使用 -s 选项)。

query 可以是任何规则的搜索查询。


注意

如果所输入的命令 rdmgr 不带任何子命令,此命令会采用 -u 子命令。如果所输入的命令 rdmgr 既无子命令又无查询 (-Q),此命令会采用 -g 子命令。


示例
例 1

将环境变量 LD_LIBRARY_PATH 设置为 /opt/SUNWps/lib

/var/opt/SUNWps/https-sesta.com/portal 目录下,键入

# /opt/SUNWps/bin/rdmgr -U

在本例中,以 UTF-8 SOIF 格式将整个资源描述默认数据库打印输出到 stdout

例 2

在默认搜索目录 /var/opt/SUNWps/https-sesta.com/portal 下,键入

# /opt/SUNWps/bin/rdmgr -d -Q java

在本例中,会删除在其中任意处含有 java 的所有资源描述。

数据库维护子命令

说明

数据库维护子命令允许管理员优化搜索数据库、截断或清空数据库、重建数据库索引、从数据库中删除过期的 RD 以及恢复数据库。表 14-21 有两列,第一列列出了子命令,第二列给出了简要说明。

表 14-21 rdmgr 数据库维护子命令 

子命令

说明

-O

优化数据库。如果是对默认数据库以外的数据库运行该子命令,需要使用 -y 选项。默认数据库在 config/search.conf 文件中定义,形如 datbase-name=logicaldbname。例如,默认值为 datbase-name=default,默认数据库目录为 db/default

数据库通常不需要进行优化。

-X

截断或清空数据库。如果是对默认数据库以外的数据库运行该子命令,需要使用 -y 选项。会恢复索引所用的磁盘空间,但不会恢复主数据库所用的磁盘空间,而是在向数据库增添新数据时重复使用该空间。

-I

重建数据库索引。如果是对默认数据库以外的数据库运行该子命令,需要使用 -y 选项。

-E

从数据库中删除过期的 RD。如果是对默认数据库以外的数据库运行该子命令,需要使用 -y 选项。

-R

恢复所有数据库。这是全局命令,不接受任何选项。运行该命令之前,必须停止所有数据库进程,包括其它 rdmgr 实例以及主搜索服务器。

-G

重新对数据库进行分区。该命令不接受任何选项。分区在 config/search.conf 文件中定义,形如 datbase-partitions=p1,p2,p3,...。其中,p1p2p3 是分区的文件名。运行该命令后,需要重新启动服务器。

-B

彻底删除数据库。恢复所有磁盘空间。运行该子命令时,不能执行索引操作,并且必须关闭 Portal Server。

-L

将数据库中的选定字段列至 stdout。需要 -a att 选项。如果是对默认数据库以外的数据库运行该子命令,需要使用 -y 选项。

语法

#  rdmgr   [-OXIERGBL]  [-ASTDVNP]   [-a att,att,...] [-b number

[-c search.conf] [-j number] [-l number] [-p progress]  [-r number 

[-s schema] [-y dbname

选项

表 14-22 有两列,第一列列出了选项或参数,第二列给出了简要说明。支持下列选项:

表 14-22 rdmgr 数据库维护子命令选项 

参数/操作数

说明

-A

不在默认搜索目录下的 config/schema.rdm 文件中使用模式别名。与 I 子命令一起使用。

-S

禁用模式检查。与 I 子命令一起使用。

-T

对分类法进行操作。分类法用于浏览数据库内容并对其进行分类,它位于默认搜索目录下的 config/taxonomy.rdm 文件中。与 OXIEBUL 子命令一起使用。

-D

只更新数据库;不更新索引。与 E X 命令一起使用。

-V

只更新索引;不更新数据库。与 E X 命令一起使用。

-N

在命令中指定的功能只对资源描述中的非持久数据起作用。数据库中的 RD 是由持久和非持久数据合并而成的。与 IEUL 命令一起使用。

-P

在命令中指定的功能只对资源描述中的持久数据起作用。数据库中的 RD 是由持久和非持久数据合并而成的。与 IEUL 命令一起使用。

-a att,att...

指定属性视图列表。att 名称不区分大小写,可以是任意属性,无论它们是否在模式中进行了定义;例如,作者或标题。如果 att 具有多个值,如 class-1class-2class-3,只需输入 class 作为 att 名称。

-b number

将索引批量设置为该 RD 数。与 I 命令一起使用。

-c search.conf

指定 search.conf 文件的位置。如果不使用该选项,默认值为目前默认搜索目录中的 config/search.conf 文件。否则,必须给出文件的完整路径。

-j number

对检索结果数进行限制。与 E 子命令一起使用。如果未指明,默认值为无限制。

-l number

将日志级别设置为指定的数值。设置为 1(默认)将会记录所有 rdmgr 命令。数字越大,日志文件所包含的信息越详细。可能的级别为 1 - 100。该选项可与所有子命令一同使用。

-p {stdout|stderr|
filename}

将进度信息打印或显示至 stdoutstderrfilename。该选项可与所有子命令一同使用。

-r number

与进度选项一起使用。每隔 number 个 RD 生成一个报告。默认值为 500。与 umgd U 子命令一起使用。

-s schema

指定模式定义文件。默认值是默认搜索目录中的 config/schema.rdm 文件。

-y dbname

指定搜索数据库名。如果是对默认数据库以外的数据库运行这条命令,则需使用该选项。不需要对默认数据库使用该选项。默认数据库在 config/search.conf 文件中定义,形如 datbase-name=filename

示例
例 1

在默认搜索目录中,键入

# /opt/SUNWps/bin/rdmgr -E -j 13 -p stdout -r 5

在本例中,会从数据库中删除最多 13 项过期的 RD。进度报告输出至 stdout,该报告每隔五项资源描述打印截至目前已经过的时间(以秒单位)和已处理的 RD 数。

例 2

搜索引擎“已挂起”或无响应。在默认搜索目录中,键入

# /opt/SUNWps/bin/rdmgr -R

该命令会恢复所有搜索数据库并使得搜索引擎再次可用。使用该命令可释放数据库中无用的锁并回滚未完成的数据事务。无用的锁和未完成的事务是因异常终止数据库进程而导致的。

用法消息及版本子命令

表 14-23 在第一列中列出了用于显示用法消息或查看版本信息的子命令,在第二列中给出了简要说明。

表 14-23 rdmgr 用法消息及版本子命令

参数/操作数

说明

-h-?

显示用法消息。

-v

显示版本信息

返回码

rdmgr 命令会向命令外壳返回返回码。

0 - 成功

1 - 失败


sendrdm

说明

sendrdm 命令提供基于 CGI 或命令行的搜索机制。会以 SOIF 格式向搜索服务器发送 rdm(资源描述管理器)请求。该命令通常在具有搜索能力的 Portal Server 实例目录中运行,即 /server-instance-directory/deployment_uri 目录。这是您在安装时所选的部署 uri 路径。如果选择默认 Portal Server 安装,该目录为 /var/opt/SUNWps/https-servername/portal 目录。其中,servername 的值是默认的 Portal Server 实例名 — 您的 Portal Server 的全限定名称。


注意

对于默认安装,将环境变量 LD_LIBRARY_PATH 设置为 /opt/SUNWps/lib


语法

sendrdm 命令的语法如下:

选项

表 14-24sendrdm 命令进行了总结。它包含两列:第一列列出了可能的选项;第二列给出了简要说明。此命令支持下列选项(按字母顺序列出):

表 14-24 sendrdm 命令选项

参数/操作数

说明

-d

调试模式。默认值为关闭。该选项会将其开启。

-t n

以秒为单位指定时间。命令在 n 秒后超时。默认值为 300 秒。

-u uri

为即将从中执行导入的服务器指定 uri 目录(输入完整路径)。

-v

版本。

RDM-in

RDM 请求文件名。该参数是必需的。

RDM-out

RDM 结果文件名。默认值为标准输出。

示例

在作为根的 /var/opt/SUNWps/https-servername/portal 目录中:

本例从 Compass Server 3.01x 中进行导入,使用 /rdm/incoming 作为 uri,同时将超时时间设置为一小时。rdmquery.soif 的内容如下:

代码示例 0-1

 

@RDMHEADER { -

catalog-service-id{48}:x-catalog://frankie.sesta.com:89/Compass-2

 

rdm-type{10}:rd-request

rdm-version{3}: 1.0

rdm-query-language{8}:gatherer

}

@RDMQUERY { -

scope{3}: all

}


StartRobot

管理员可以使用 StartRobot 脚本来手动启动 robot。该脚本通常由调度程序用来在设定时间启动 robot(cron 作业)。StartRobot 命令位于 /var/opt/SUNWps/https-servername/portal 目录中。

语法

#  StartRobot

选项

没有选项。


StopRobot

管理员可以使用 StopRobot 脚本来手动停止 robot。该脚本通常由调度程序用来在设定时间停止 robot(cron 作业)。StopRobot 命令位于 /var/opt/SUNWps/https-servername/portal 目录中。

语法

# StopRobot

选项

没有选项。



上一页      目录      索引      下一页     


版权所有 2003 Sun Microsystems, Inc. 保留所有权利。