故障诊断与支持
故障诊断技术和自助信息有助于您快速识别和解决问题。您可以在这里找到自己可能遇到的 HTTP 连接器问题的可能解决方案。
查询参数的不一致行为
问题:传递到 HTTP 接收方的查询参数的行为与输入不同。对于“HTTP 放置”、“HTTP 获取”、“HTTP 调用”、“HTTP 头”和“HTTP 删除”出站活动,会发生这种不一致情况。对于这些活动,可以在以下两个位置中设置包含查询参数的 URL:
- 核对表 > 配置面板 > URL(主机名后的路径)
- 核对表 > 映射输入面板 > 至活动部分 >httpheaders > uri
但是,上述步骤中设置的查询参数可以在映射输入面板 >“至活动”部分 > httpheaders > queryParameters 中被替换或覆盖。传递到 HTTP 接收方的查询参数的行为与输入不同。
解决方案:设置值时,请考虑以下几点:
- 如果映射了 URL 值并且参数值为空,那么 URL 将原样传递到 HTTP 接收方。
- 如果还分配了映射中的 URL 值以及参数值,那么 HTTP 接收方将获取这些值。包含参数值的 URL 将追加到 URL 末尾。
- 如果未映射 URL 值,将使用输入映射中的参数值动态构建 URL。
示例:
配置面板 URI: /xyz/test?query2=c&query3=c&query5=c&query6=c
映射输入 URI: /xyz/test?query4=u&query3=u
映射输入查询参数:query2=m and query3=m
结束 URL: /xyz/test?query4=u&query3=m&query2=m&query5=&query6=
HTTP 连接器使用 ISO-8859-1 作为缺省字符编码值。
HTTP 连接器现在使用 ISO-8859-1 作为缺省字符编码,代替 UTF-8。
您可以使用以下任何一种方法来更改此字符编码值:
- 方法 1:要解决问题,请执行以下步骤:
- 转至“HTTP 发送响应”活动
- 添加响应头“Content-Type”
- 在“映射输入”、“至活动”主体中,右键单击主体元素,然后单击“显示可选参数”
- 展开(可选)httpheaders,并将以下缺省值分配给“Content-Type”元素:
text/plain;charset=UTF-8
- 方法 2:引入新的 JVM 级别配置属性。您可以将此更改为必需值。如果在 HTTP 活动中设置任何值,那么将具备最高优先级。会将下一个优先级指定给 JVM 级别属性(如果可用)。如果未在任何位置进行设置,那么会将缺省值“ISO-8859-1”用于内容编码。
- Studio
Property name: "ContentEncoding" Default value: "ISO-8859-1"
一旦启动 Studio,将在 JDK 的 bin 目录中运行 jConsole。在新建连接屏幕中的“本地进程”下,选择与 Studio 对应的进程,然后单击连接。在 MBeans 选项卡下,浏览至“HttpModule”>“HTTP 回送”>“属性”>“ContentEncoding”。将缺省值更改为必需值。
- 设备
Property name: HTTP_CHARACTER_ENCODING Default value: ""
在设备上设置此属性需要系统 shell 访问权以启用/禁用 jmxport。在系统 shell 中,发出以下命令以检查是否针对属性设置任何值:
ihconfutil lookup /var/sysconf sysconf.db HTTP_CHARACTER_ENCODING
用户将获取如下输出:
ContentEncodingv: []
现在,尝试将值 true 设置为此属性。
ihconfutil add /var/sysconf sysconf.db HTTP_CHARACTER_ENCODING <new value>
现在,使用以下命令验证值设置:
ihconfutil lookup /var/sysconf sysconf.db HTTP_CHARACTER_ENCODING
这样将导致
ContentEncodingv: [<new value>]
设备中的层次结构为:- Jconsole 属性
- Config 属性
- 缺省值
- Studio