我目前正在开发一个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。该消息标记的内容可能因构建错误消息并发送它的服务而异。在我处理映射的XSL文件中,使用函数get-content-as-string function
使用表达式
/error-v1:Error/Message
这个问题是Message标签也被复制了,我真的只想要它的内容。我尝试使用/error-v1:Error/Message/*
,但JDeveloper会产生一个错误,指出*
不是有效节点。如果我忽略错误并进行部署,则在映射发生时进程会出错。我也尝试过使用/error-v1:Error/Message/child::*
,但这会产生同样的错误。
我在网上发现的所有参考文献都说上面的内容应该可行,但我似乎无法找到适用于SOA的解决方案。建议?
答案 0 :(得分:0)
也许尝试/error-v1:Error/Message/text()
- 您需要Message
标记的内部文字。
答案 1 :(得分:0)
尝试: /错误-V1:错误/消息/节点()