0

我目前正在处理一个 Oracle SOA 项目,但在将传入消息映射到另一条消息时遇到问题。我是 SOA 和 Oracle 工具集的新手。我正在使用 JDeveloper,以下是“关于”选项卡中列出的版本:

ADF Business Components   11.1.1.62.29
BPMN Editor               11.1.1.6.0.15.53
Java(TM) Platform         1.6.0_24
Oracle IDE                11.1.1.6.38.62.29
SOA Composite Editor      11.1.1.6.0.15.53
Team Productivity Center  11.1.1.6.38.61.92
Versioning Support        11.1.1.6.38.62.29

我的传入消息是一条错误消息,其中包含来自其他服务的失败消息。消息的格式如下:

<Error>
   <code />
   <service />
   ...
   <Message>
       [ORIGINAL MESSAGE HERE]
   </Message>
</Error>

我需要将 Message 的内容映射到另一种消息类型。消息标签包含bea:serialize函数创建的序列化 XML。该消息标签的内容可能因构建错误消息并发送它的服务而异。get-content-as-string function在我处理映射的 XSL 文件中,使用以下表达式的函数映射消息:

/error-v1:Error/Message  

这样做的问题是 Message 标签也被复制了,我真的只想要它的内容。我尝试过使用/error-v1:Error/Message/*,但 JDeveloper 会产生一个错误,指出该*节点不是有效节点。如果我忽略错误并进行部署,则在映射发生时进程会出错。我也尝试过使用/error-v1:Error/Message/child::*,但这会产生相同的错误。

我在网上找到的所有参考资料都说上述方法应该可以工作,但我似乎找不到一个同样适用于 SOA 的解决方案。建议?

4

2 回答 2

0

尝试:/error-v1:Error/Message/node()

于 2013-10-08T15:13:37.950 回答
0

也许试试- 你想要标签/error-v1:Error/Message/text()的内部文本。Message

于 2013-10-08T15:10:31.720 回答