Net.Data 为小服务程序和 NetObjects Fusion 插件提供了可以在 Java 环境中使用 的 Net.Data 函数。使用了这些小服务程序和插件,您可以:
本节将描述以下小服务程序的主题:
Net.Data 提供了小服务程序来帮助您开发和管理使用 Java 环境的宏。小服务程序 是一些 Java 类,它们执行类似于 CGI 程序或 Web 服务器 API 插件的功能。支持 Java 小服务程序 的 Web 服务器使用小服务程序来构建 HTML 页面。小服务程序没有它们自己的图形用户界面, 但它们的类却可以动态地装入或通过访问网络来装入,并且可以使用一个 URL 地址(远程)或由 一个类名来调用。小服务程序在 Windows NT 和 AIX 操作系统中可用。
Net.Data 小服务程序是基于 Java 的包装,它们使用本机的 DLL 文件运行 Net.Data 版本 2 宏或 直接请求。这些小服务程序允许您运行现有的宏 (MacroServlet) 或单独的 函数 (FunctionServlet)。要使用这些小服务程序,Net.Data 版本 2 是必需的。Net.Data 小服务程序可以运行 数据库语言环境或非数据库语言环境,还可以与 Live Connection 一起运行。
API 所附带的小服务程序是与应用程序一起使用的。小服务程序 API 的文档与 Net.Data 在一起。参见 <inst_dir>/servlets/NetDataServlets.jar 文件以获取 API 文档。
Net.Data 提供了两个小服务程序:
使用宏小服务程序类似于通过 CGI-BIN 接口 来运行 Net.Data 宏,除了您通过 Java 小服务程序运行宏以外。宏小服务程序要求 安装 Net.Data 版本 2 或更高版本。
使用宏小服务程序的好处包括:
宏小服务程序还允许对多机种数据库(例如 DB2 和 Oracle)以及各种 语言环境(例如 Perl、REXX 和 Java)的本机访问。
函数小服务程序要求安装 Net.Data 版本 2。
Net.Data 小服务程序可以从 URL 运行,也可以作为 HTML 文件内的 SSI 运行。可以 使用 NetObjects Fusion 插件将 Net.Data 小服务程序结合到您的 NOF 站点中。以下章节将讨论 如何通过输入小服务程序的语法来修改和运行小服务程序。参见附录 E, 使用 NetObjects Fusion NOF 插件和 Net.Data 小服务程序以学习 如何使用 NetObjects Fusion 来修改和运行小服务程序。
在 HTML 文件内,使用以下某个语法选项输入小服务程序参数:
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet ?MACRO=macro_value&BLOCK=block_value&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet ?MACRO=my_macro&BLOCK=my_block&field1=custno
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="my_macro.d2w"> <param name="BLOCK" value="report"> <param name="field1" value="custno"> </servlet>
参数:
<param name="field1" ...
... value="custnum"
HTMLPATH 参数:如果您获取一个指示丢失了 HTMLPATH参数 的错误信息,则向小服务程序调用命令中添加 HTMLPATH 参数:
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet ?MACRO=macro_name&BLOCK=block_value&htmlpath=html_path&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet?MACRO=my_macro &BLOCK=my_blockhtmlpath=e:\html&field1=custno
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="htmlpath" value="html_path"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="my_macro"> <param name="BLOCK" value="my_block"> <param name="htmlpath" value="e:\html"> <param name="field1" value="custno"> </servlet>
OUTBUFLEN 参数:如果宏的结果大于 32 KB, 则需指定 OUTBUFLEN 参数。如果在必需的 时侯不能指定这些参数,则有可能导致不可预测的结果。
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet ?MACRO=macro_name&BLOCK=block_value &OUTBUFLEN=output_buffer_size&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.MacroServlet?MACRO=my_macro &BLOCK=my_block&OUTBUFLEN=48&field1=custno
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="macro_value"> <param name="BLOCK" value="block_value"> <param name="OUTBUFLEN" value="output_buffer_size"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.MacroServlet"> <param name="MACRO" value="my_macro"> <param name="BLOCK" value="my_block"> <param name="OUTBUFLEN" value="48"> <param name="field1" value="custno"> </servlet>
函数小服务程序可以使用直接请求调用 Net.Data 来执行函数(例如 REXX 函数)或 SQL 语句。对小服务程序指定的参数取决于您是在执行函数还是在执行 SQL 语句。在 HTML 文件内,使用以下某个语法选项输入小服务程序参数:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=lang_env_name&FUNC=program_name&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=DTW_REXX&FUNC=my_rexx&field1=custno
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=database_lang_env_name&SQL=SQL_statement &DATABASE=database_name&parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=DTW_SQL&SQL=select+*+from+myTable&DATABASE=CELDIAL
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="lang_env_name"> <param name="FUNC" value="program_name"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="DTW_REXX"> <param name="FUNC" value="myREXX"> <param name="field1" value="custno"> </servlet>
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="lang_env_name"> <param name="SQL" value="SQL_stmt_name"> <param name="DATABASE" value="database_name"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="DTW_SQL"> <param name="SQL" value="select * from employee"> <param name="DATABASE" value="CELDIAL"> </servlet>
参数:
HTMLPATH 参数:如果您获取一个指示丢失了 HTMLPATH 参数 的错误信息,则向小服务程序调用命令中添加 HTMLPATH 参数:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=lang_env_name&FUNC=program_name&htmlpath=html_path &parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=DTW_REXX&FUNC=my_rexx&htmlpath=e:\html&field1=custno
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="lang_env_name"> <param name="SQL" value="SQL_stmt_name"> <param name="htmlpath" value="html_path"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="DTW_SQL"> <param name="SQL" value="select * from employee"> <param name="htmlpath" value="e:\html"> <param name="field1" value="custno"> <param name="DATABASE" value="SAMPLE"> </servlet>
其中 html_path 指定了 Web 服务器根 HTML 目录的路径; 例如:htmlpath=e:\html。
OUTBUFLEN 参数:如果宏的结果大于 32 KB, 则必须指定 OUTBUFLEN 参数。如果在必需的 时侯不能指定这些参数,则有可能导致不可预测的结果。
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=lang_env_name&FUNC=program_name&OUTBUFLEN=output_buffer_size &parmnn=valuenn
例如:
http://myserver/servlet/com.ibm.netdata.servlets.FunctionServlet ?LANGENV=DTW_REXX&FUNC=my_rexx&OUTBUFLEN=48K&field1=custno
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="lang_env_name"> <param name="FUNC" value="program_name"> <param name="OUTBUFLEN" value="output_buffer_size"> <param name="parmnn" value="valuenn"> </servlet>
例如:
<servlet code="com.ibm.netdata.servlets.FunctionServlet"> <param name="LANGENV" value="DTW_REXX"> <param name="FUNC" value="my_rexx"> <param name="OUTBUFLEN" value="48K"> <param name="field1" value="custno"> </servlet>