was命令jspbatchcompiler命令

was命令jspbatchcompiler命令

2023年7月13日发(作者:)

WAS命令:JSPBatchCompiler 命令

批处理编译器验证 JavaServer Pages 的语法、将 JSP 页转换成 Java 源文件,并且将 Java 源文件编译为 Java Servlet 类文件。批处理编译器也验证标记文件并生成它们的 Java 实现类。使用了该功能批量编译 JSP 文件,将能在产品 Web 效劳器上更快响应客户机对 JSP 文件的初始恳求。

批处理编译器可以执行于压缩的或展开的企业归档〔EAR〕文件和 Web 应用程序归档〔WAR〕文件,以及已部署到 WebSphere Application Server 的企业应用程序和 Web 模块。假设目的是已部署的企业应用程序,那么执行批处理编译器时不需要运行效劳器。假设执行批处理编译器时目的效劳器在运行,那么需要重新启动企业应用程序,否那么效劳器就不知道更新的类文件,也不能装入该类文件。假设目的是压缩的 EAR 文件或 WAR 文件,那么批处理编译器必须先展开它,然后再执行。

Web 模块的处理

批处理编译器一次在一个 Web 模块上运行。假设目的是 EAR 文件或已安装的包含多个 Web 模块的企业应用程序,批处理编译器在每个 Web 模块上单独运行。这是因为 JSP 页是通过 Web 模块的 部署描绘符文件在 Web 模块根底上配置的。在 Web 模块内,批处理编译器一次处理一个目录。它分别验证和转换每个 JSP 页,然后为该目录中生成的整个 Java 源文件组调用 Java

编译器。假设 Java 编译阶段中有一个 JSP 页编译失败,那么 Java 编译器不能为该目录中大多数〔或全部〕成功编译的 JSP 页创立类文件。

JSP 文件扩展名

批处理编译器使用四项来确定它应该处理的文件扩展名:

1. 标准 JSP 文件扩展名

o

*.jsp

o

*.jspx

o

*.jsw

o

*.jsv

2. Servlet 2.4 Web 模块中部署描绘符文件的 sp-property-group 元素的 url-pattern 属性

3. JSP 引擎配置参数〔适用于在 Servlet 2.4 之前的 Web 模块〕

4. 批处理编译器配置参数

批处理编译器始终使用标准扩展名。假设 Web 模块包含 Servlet 2.4 部署描绘符,那么批处理编译器还处理 jsp-config 元素中找到的任何 url-pattern。假设批处理编译器目的包含 JSP 引擎配置参数 ,那么也处理那些扩展名。假设存在批处理编译器配置参数 ,也处理给定的扩展名并且将覆盖

JSP 引擎配置参数 。

最好给 JSP“片段〞一个批处理编译器不处理的扩展名。假设批处理编译器处理它,那么静态包含的片段不单独生成转换或编译错误。JSP 2.0 标准建议您为这样的文件使用扩展名

.jspf。

批处理编译器命令 用于从命令行运行批处理编译器的 Windows 批处理文件 和 UNIX shell 脚本 都可以在

{WAS_ROOT}/bin 目录中找到。也可以使用 Ant 任务执行使用 Ant 的批处理编译器。请参阅主题“批处理编译器 Ant 任务〞,以理解其他信息。

批处理编译器目的是唯一的必需参数。目的是 -、- 或 - 中的一个。

JspBatchCompiler - | - | -

false>]

]

]

false>]

[-usePageTagPool

[-keepgenerated

[-removeTempDir

]

[-forceCompilation ]

[-useFullPackageNames ]

[-trackDependencies ]

[-createDebugClassfiles ]

[-translate

[-compile

[-compileToWebInf ]

[-compileToDir

[- ]

[- ]

[- ]

[- ]

[-extractToDir

[- ]

[- ]

[-filename

[-recurse

name | directory name>

[-profileName ]

| false>]

]

[-keepGeneratedclassfiles ]

]

[- ]

[- ]

[-useThreadTagPool ]

[- ]

[-jspCompileClasspath

Application Server public API JAR files; or no value at all>]

[-verbose ]

[-deprecation ]

[-javaEncoding

[-compileWithAssert ]

[-compilerOptions

[-useJikes

[-

[-

compiler options>]

| false>]

extensions to process>]

WARNING | INFO | CONFIG | FINE | FINER | FINEST | OFF>]

*** 请参阅 WAS_ROOT/bin 中的 ,以获取更多信息。***

*** 请参阅 WAS_ROOT/bin 中的,以理解有关公用 WebSphere Ant 任务 JspC 的信息。***

批处理编译器知道三组配置参数:

1. Web 模块的 JSP 引擎配置参数。

请参阅JSP 引擎配置参数 主题。

2. 批处理编译器响应文件配置参数。

这些是在批处理编译器响应文件中找到的参数。请参阅下面的 -。

3. 批处理编译器命令行配置参数。

这些是运行批处理编译器时在命令行上输入的参数。

批处理编译器查找配置参数的所有三个组以确定当编译 JSP 页时使用参数的哪个值。当解析给定参数的值时,优先顺序为:

1. 假设在命令行上找到参数,那么使用它的值。

2. 假设在命令行上未找到参数,那么批处理编译器在命令行上指定的响应文件中查找参数。

3. 假设没有指定响应文件,或者未在响应文件中找到参数,那么批处理编译器在 Web 模块的

JSP 引擎配置参数中查找参数。

假设未在这三个组中找到配置参数,那么使用缺省值。下面给出配置参数的缺省值和参数的描绘。 这些参数不区分大小写,但 -profileName 例外,它区分大小写。假设为这些参数指定的值由两个或多个以空格分隔的字组成,那么必须在值周围添加引号。

批处理编译器不创立〔或不设置〕等价的 JSP 引擎参数的值。这意味着假设部署的 Web 模块中的

JSP 页由 JSP 引擎在运行时修改并重新编译,那么 JSP 引擎的配置参数将确定引擎的行为。例如,假设您使用批处理编译器编译 Web 模块并且使用 -useFullPackageNames true 选项,那么将编译

JSP 文件来支持该选项。但是还必须将 JSP 引擎参数 useFullPackageNames 设置为 true,以使

JSP 运行时可以装入已编译的 JSP 页。假设在已部署的 Web 模块中修改了 JSP 页,那么应当将引擎的参数设置为批处理编译中使用的值。

要使用 JSP 批处理编译器,请在操作系统命令提示符的一行上输入以下其中一个命令。

|

表示单个压缩的或展开的企业应用程序归档〔EAR〕文件或 Web 应用程序归档〔WAR〕文件的完好途径,或表示要编译的已部署的企业应用程序的名称。例如:

JspBatchCompiler -

o

JspBatchCompiler -

o

JspBatchCompiler - myEnterpriseApp - -filename

aDir

o

表示到包含批处理编译器使用的配置参数的文件的途径。仅当在命令行上指定 时才使用它;假设在响应文件中出现,那么忽略它。

在缺省安装中,模板响应文件 位于

{WAS_ROOT}/bin 目录中。复制此模板以创立您自已的响应文件,该响应文件包含您感兴趣的参数的缺省值。所有必需和可选参数〔除 之外〕都可能在响应文件中配置。例如:JspBatchCompiler -

缺省值:null

表示您要批量编译的特定 Web 模块的名称。假设没有设置此参数,那么将编译企业应用程序中的所有 Web 模块。仅当指定 或 时才使用此参数。当已部署的企业应用程序内特定

Web 模块中的 JSP 页需要重新生成时,该参数是有用的,因为这会检取所有的共享库依赖项。

例如:JspBatchCompiler - sampleApp -

缺省值:假设未给出该参数,那么会编译 EAR 文件中的所有 Web 模块或企业应用程序。

filename

表示您要编译的单个 JSP 文件名称。假设没有设置此参数,那么将编译 Web 模块中的所有文件。或者,假设 filename 设置为目录的名称,那么仅编译该目录和它的子目录中的 JSP

文件。该名称相对于 Web 模块的上下文根。 例如 1:假设您要编译文件 ,且在

/subdir/myJSPs 中找到它,那么您应该输入

-filename /subdir/myJSPs。

例如 2:假设您要编译

/subdir/myJSPs 及其子目录中所有的 JSP 文件,那么您应该输入

-filename subdir/myJSPs。

缺省值:编译 Web 模块中的所有 JSP 文件。输入

-filename /

等同于缺省值。

recurse

确定是否处理目的目录下的子目录。仅当指定 filename 参数时才使用此参数。将值设置为

false 仅处理名为 filename 参数的目录;并且不处理它的子目录。

例如:JspBatchCompiler - sampleApp -filename /subdir1 -recurse false。

缺省值:true;处理目的目录下的所有目录。

指定 WebSpehere Application Server 配置目录的位置。仅当指定 时才使用此参数。

缺省值:

{WAS_ROOT}/profiles/profilename/config

指定部署应用程序的单元名称。仅当指定 时才使用此参数。

缺省值:缺省值是从使用的概要文件脚本获取的。此变量的符号名称为 WAS_CELL。

指定部署应用程序的节点名称。仅当指定 时才使用此参数。

缺省值:缺省值是从使用的概要文件脚本获取的。此变量的符号名称为 WAS_NODE。

表示部署应用程序的效劳器名。仅当指定 时才使用此参数。

缺省值:server1

profileName

指定您要使用的概要文件的名称。仅当指定 时才使用此参数。

例如:JspBatchCompiler - sampleApp -profileName AppServer-3 缺省值:使用缺省概要文件。缺省值可在

install_root/bin 目录中的文件

setupCmdLine 脚本中找到。符号名称为 DEFAULT_PROFILE_SCRIPT。

extractToDir

指定批处理编译器在操作预部署的企业归档〔EAR〕文件和 Web 应用程序归档〔WAR〕文件之前,要将它们解压缩到的目录。当指定 时,忽略此参数。如下表描绘的那样使用

extractToDir 参数。

例如:JspBatchCompiler - c: -extractToDir c:myTempDir。

用例:在批量编译压缩的归档之前,您必须解压缩它。您还可以将已扩展的归档解压缩到新的目录。这两种情况下,解压缩都保存原始归档不变,这在进展开发时可能很有用。

缺省值:

提供了

extractToDir

扩展的归档 压缩的归档

在操作归档之前,批处理编译器将它解压缩到 extractToDir。假设在

extractToDir 中存在其名与归档名一样的文件或目录,那么批处理编译器在解压缩该归档之前完全除去它。假设批处理编译器退出时未发生错误,批处理编译器会在 extractToDir 的适当位置压缩归档〔即使原来的 EAR 文件和 WAR 文件是展开的〕。假设编译期间发生错误,EAR

文件或 WAR 文件保持展开状态〔即使原来的 EAR 文件或 WAR 文件是压缩的〕。

未提供

extractToDir

批处理编译器适当地操作 EAR

文件或 WAR 文件〔不将文件解压缩到另一个目录〕,并且在批处理编译器完成操作之后归档保持展开状态。

批处理编译器将归档解压缩到

JVM 属性“〞返回的目录。其他行为与上面描绘的提供了

extractToDir 的一样。

缺省值为

server1。

compileToDir

指定一个目录,该目录中将安放由 JSP 页转换而成的 Java 源文件以及编译而成的类文件。该目录可以在文件系统的任意位置,但通常要适宜批处理编译器的缺省行为。下表描绘了编译类文件时批处理编译器的行为。

例如:: JspBatchCompiler - sampleApp -compileToDir c:myTargetDir

用例:该参数使您可以将 Java 和类文件生成到目的之外的目录中,假设您要将新生成的文件与它们在目的中未改动的先前版本进展比较,这是有用的。 缺省值:

未提供

compileToDir;未提供

compileToWebInf,或者为 true

提供了 或

类文件编译到 Web 模块的

提供了

类文件编译到 Web 模块的

WEB-INF/classes 目录。

WEB-INF/classes

目录

未提供

compileToDir;compileToWebInf

为 false

类文件编译到 Web 模块的

类文件编译到 WebSphere

Application Server temp 目录〔通常为

WEB-INF/classes

目录。

{WAS_ROOT}/temp〕中。

提供了

compileToDir;未提供

compileToWebInf,或者为 true 或

false

类文件编译到

compileToDir 说明的目录中。

类文件编译到 compileToDir

说明的目录中。

compileToWebInf

指定已编译 JSP 类文件的目的目录是否应该是 Web 模块的

WEB-INF/classes

目录。仅当指定 时才使用此参数,并且假设指定 compileToDir,compileToDir 将覆盖此参数。

批处理编译器的缺省行为是编译到 Web 模块的

WEB-INF/classes 目录。下表描绘了编译类文件时批处理编译器的行为。

例如:JspBatchCompiler - sampleApp -compileToWebInf false。

用例:当提供了 并且您要将类文件编译到 WebSphere Application

Server temp 目录而不是 Web 模块的

WEB-INF/classes 目录时,将该参数设置为

false。建议:假设该参数设置为 false,那么

WEB-INF/classes 目录中存在任何

JSP 类文件时,将 forceCompilation 设置为 true。

缺省值:true;请参阅上表。

forceCompilation

指定是否强迫批处理编译器重新编译所有的 JSP 资源,而不管 JSP 页是否过时。

例如:JspBatchCompiler - c: -forceCompilation true。 用例:当为部署创立归档时尤其有用,以确保所有的 JSPE 类是最新的。

缺省值:false

useFullPackageNames

指定批处理编译器是否为 JSP 类生成完好包名。缺省情况下,在同一个包中生成所有 JSP

类。当 JSP 类在同一个包中时,JSP 引擎的类装入器知道如何装入它们。缺省值有生成较小的文件系统途径的优点。完好包名有一个好处,允许不使用

jsp-file 属性将预编译的 JSP 类文件配置为 文件中的 servlet,结果是使用单个类装入器〔Web 应用程序的类装入器〕装入所有这样的 JSP 类。同样地,当 JSP 引擎的配置属性

useFullPackageNames 和 disableJspRuntimeCompilation 都为 true 时,使用单个类装入器装入所有 JSP 类〔即使在 文件中未将 JSP 页配置为 servlet〕。

当 useFullPackageNames 设置为 true 时,批处理编译器在 Web 模块的

WEB-INF 目录中生成名为 的文件。此文件包含成功转换和编译的每个 JSP 页的 servlet 配置信息。您可以选择将信息复制到 Web 模块的 文件中,以使得 Web 容器可以将 JSP 页作为

servlet 装入。请注意,假设以此方式将 JSP 页配置为 servlet,又修改了该 JSP 页,那么在运行时不会重新装入该 JSP 页。这是因为该 JSP 文件将视作正规的 servlet,对它的恳求将不通过 JSP 引擎传递。

例如:JspBatchCompiler – sampleApp –useFullPackageNames true

用例:通过单个类装入器装入 JSP 类。

缺省值:false

removeTempDir

指定是否除去 Web 模块的临时目录。缺省情况下,批处理编译器将 JSP 类文件生成到

Web 模块的

WEB-INF/classes 目录中。假设修改了 JSP 页并且启用了 JSP 重新装入,那么在运行时 JSP 类文件将生成到

temp 目录。批量编译 Web 模块中的所有

JSP 页并且同时除去

temp 目录,这样就保存了磁盘资源。当给出 - 时,您只能使用

removeTempDir 参数。

例如:JspBatchCompiler - sampleApp -removeTempDir true。

用例:通过去除 Web 应用程序的

temp 目录释放磁盘空间。

缺省值:false

translate

指定是否转换和编译 JSP 页。假设您不要转换和编译 JSP 页,那么将 translate 设置为

false。要指示批处理编译器只除去

temp 目录而不进展进一步处理,您必须使用此选项并带上

-removeTempDir。 例如:JspBatchCompiler - sampleApp -translate false -removeTempDir true。

用例:通过去除 Web 应用程序的

temp 目录释放磁盘空间,而无需调用 JSP 处理。

缺省值:true

compile

指定是否要 JSP 页完成 Java 编译阶段。假设您不要 JSP 页完成 Java 编译阶段,那么将 compile 设置为

false。

例如:JspBatchCompiler - sampleApp -compile false

用例:假设您仅希望检查 JSP 页的语法,那么将 -compile 设置为 false。假设您要理解转换阶段生成的

.java 文件,那么可将 -keepgenerated 设置为 true。

缺省值:true

trackDependencies

指定在 JSP 页的任何依赖项发生更改时〔即使 JSP 页未更改〕,是否要批处理编译器重新编译它。跟踪依赖项将导致运行时性能明显下降,因为每次恳求 JSP 页时 JSP 引擎都要检查文件系统,以查看 JSP 页的任何依赖项是否发生了更改。下面是 WebSphere

Application Server 跟踪的相关性:

1. JSP 页中静态包含的文件

2. JSP 页中使用的标记文件〔不包含 JAR 文件中的标记文件〕

3. JSP 页使用的 TLD 文件〔不包含 JAR 文件中的 TLD 文件〕

例如:JspBatchCompiler - c: -trackDependencies true。

用例:在开发环境中是有用的。

缺省值:false

createDebugClassfiles

指定批处理编译器是否按照 JSR 45 调试其他语言的支持生成包含 SMAP 信息的类文件。

例如:JspBatchCompiler - sampleApp -createDebugClassfiles true

用例:在 JSR 45-compliant IDE 中调试 JSP 页时,要使用该参数。

缺省值:false

keepgenerated

指定批处理编译器是保存还是擦除转换阶段生成的 Java 源文件。 假设设置为

true,WebSphere Application Server 将用于编译的已生成的

.java 文件保存到您的效劳器上。缺省情况下,该参数设置为

false,因此编译类文件后将擦除

.java 文件。

例如:JspBatchCompiler - c: -keepgenerated true

用例:当您要查看批处理编译器生成的 Java 代码时,使用该参数。

缺省值:false

keepGeneratedclassfiles

指定批处理编译器是保存还是擦除在编译 Java 源文件期间生成的类文件。

例如:JspBatchCompiler - c: -keepGeneratedclassfiles false

-keepgenerated false

用例:假设您仅希望查看 JSP 页中是否有任何转换或编译错误,那么将该参数设置为 false。假设 -keepgenerated 也设置为 false,那么该参数将导致在批处理编译器完成操作之前除去所有已生成的文件。

缺省值:true

usePageTagPool

启用或禁用基于单个 JSP 页复用定制标记处理程序。

例如:JspBatchCompiler - c: -usePageTagPool true

用例:使用此参数以启用基于 JSP 页复用标记处理程序。

缺省值:false

useThreadTagPool

启用或禁用基于每个 Web 模块的每个恳求线程复用定制标记处理程序。

例如:JspBatchCompiler - c: -useThreadTagPool true

用例:使用此参数以启用基于 Web 模块复用标记处理程序。

缺省值:false

通过指示批处理编译器先搜索父类装入器再搜索应用程序类装入器,指定装入类的搜索顺序。仅当给定 或 时才使用此参数。

例如:JspBatchCompiler - c: - false

用例:当您的 Web 模块包含也可以在效劳器 lib 目录中找到的 JAR 文件,并且您希望首先检取 Web 模块的 JAR 文件时,将此参数设置为 false。

缺省值:true

指定是每个企业归档〔EAR〕文件使用一个类装入器,还是每个 Web 应用程序归档〔WAR〕文件使用一个类装入器。仅当指定 或 时才使用此参数。

例如:JspBatchCompiler - c: - true

用例:当 Web 模块依赖于同一个企业应用程序中的另一个 Web 模块中的 JAR 文件和类时,将此参数设置为 true。

缺省值:false;每个 WAR 文件创立一个类装入器,而无视其他 Web 模块中的类。

指定要在解析和编译 JSP 页时使用的其他类途径条目。仅当指定 时才使用此参数。当 是目的时,批处理编译器不会获得 WebSphere 共享库。因此,假设您的 WAR 文件依赖

WebSphere Application Server 中配置为共享库的 JAR 文件,那么使用此选项以指向该

JAR 文件。另外,假设您指定 并且还使用

-extractToDir 参数,那么不会将 WAR

文件的清单类途径中的任何 JAR 文件添加到类途径〔因为 WAR 文件如今已将它自己解压缩到它所在的 EAR 文件之外〕。在这种情况下,使用

- 以指向必需的 JAR 文件。将完好途径添加到必需的资源,用随系统而定的途径分隔符分隔这些资源。

例如:JspBatchCompiler - c: -

c:;c:myClasses

用例:使用该参数以添加到类途径 JAR 文件和 WAR 文件外的类。在运行时,通过标准

WebSphere Application Server 配置机制必须能使用这些 JAR 文件和类。

缺省值:NULL

jspCompileClasspath

此选项指示批处理编译器为 Java 编译阶段使用小的类途径。小的类途径加快编译过程的速度。缺省情况下,不使用这个小的类途径,因为它只包含 WebSphere Application Server JAR

文件的子集。许多 WebSphere Application Server JAR 文件包含了 WebSphere 公用 API,这些文件不包括在小的类途径中。 假设 JSP 页不使用 scriptlet 中的任何 WebSphere 公用 API,您可以通过使用没有值的

jspCompileClasspath 参数启用小的类途径,如下面的例如 1 中所述。

假设您的 JSP 页使用 scriptlet 中的 WebSphere 公用 API,那么将那些额外的 JAR 文件添加到 jspCompileClasspath 选项中,如下面的例如 2 中所述。

用空格分隔各条目,并且将它们假设为与 WebSphere Application Server 安装根相关。

例如 1:假设 JSP 页中不需要公用 API:JspBatchCompiler - sampleApp

-jspCompileClasspath

例如 2:JSP 页需要 文件中的公用 API:JspBatchCompiler - sampleApp

–jspCompileClasspath "lib/"

用例:使用此参数加快 Java 编译处理 JSP 页的步骤。

缺省值:缺省情况下,使用完好的 WebSphere Application Server 类途径。

verbose

指定批处理编译器是否应该在编译已生成的源时生成详细输出。

例如:JspBatchCompiler - c: -verbose true

用例:当您要查看 Java 编译器类装入和其他消息时,将此参数设置为 true。

缺省值:false

deprecation

说明编译器应在编译生成的源时生成建议不要使用警告。

例如:JspBatchCompiler - c: -deprecation true

用例:当您要查看 Java 编译器不赞成消息时,将此参数设置为 true。

缺省值:false

javaEncoding

指定 Java 编译器生成 .java 文件和编译 .java 文件时使用的编码。设置 -javaEncoding

后,通过 -encoding 参数将编码传递到 Java 编译器。注意,Jikes 不支持编码。

例如:JspBatchCompiler - c: -javaEncoding Shift-JIS

用例:当 JSP 页的页面编码非 UTF-8 兼容时,设置此参数。 缺省值:UTF-8。

compileWithAssert

指定批处理编译器启用断言。假设 compileWithAssert 为 true,那么批处理编译器会将–source 1.4 选项传递给 javac 编译器。假设 compileWithAssert 为 false,那么不向 javac

编译器发送选项。javac 的缺省行为是正常地编译代码,即使单词 assert 用作常规标识也是如此。

例如:JspBatchCompiler - c: -compileWithAssert true

用例:当需要在 JSP 页中使用断言工具并且希望可以在运行时开启断言时,将此参数设置为 true。

缺省值:false

compilerOptions

指定要在 Java 编译器命令上传递的字符串列表。这是以空格分隔的列表,它的格式为“arg1

arg2 argn〞。

例如:JspBatchCompiler - c: -compilerOptions " -bootclasspath

"

用例:假设除了冗长、不赞成和声明设施支持外,您还需要其他 Java 编译器参数,那么使用此参数。

缺省值:NULL

useJikes

指定编译 Java 源代码是否应该使用 Jikes。注:WebSphere Application Server 不附带

Jikes。

例如:JspBatchCompiler - c: -useJikes true

用例:将此参数设置为 true 以使批处理编译器使用 Jikes 作为 Java 编译器。

缺省值:false

指定要由批处理编译器处理的文件扩展名。这是用分号或冒号分隔的列表,它的格式为“*.ext1;*.ext2:*.extn〞。注意,此参数不是 Servlet 2.4 Web 应用程序必需的,因为部署描绘符中的 jsp-property-group 元素的 url-pattern 属性可以用于识别应该被视为 JSP 页的扩展名。 例如:JspBatchCompiler - sampleApp - *jspz;*.jspt

用例:使用此参数添加可被批处理编译器处理的其他扩展。

缺省值:NULL。请参阅本主题中的“JSP 文件扩展〞部分以理解其他信息。

指定批量编译过程中指向控制台的记录的级别。值为 SEVERE | WARNING | INFO |

CONFIG | FINE | FINER | FINEST | OFF

例如:JspBatchCompiler - sampleApp - FINEST

用例:将此参数设置得高一点或低一点以控制记录输出。FINEST 将生成对于调试最有用的输出。

缺省值:CONFIG

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689201563a220210.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信