我使用IBM ODM创建了一个非常简单的RuleApp,并将其部署到Rule Execution Server(RES)。
我打算用SOAP协议调用这个应用程序,所以我从HTDS中检索了WSDL定义。
此服务的输入是一个简单的类,其中一个字符串字段名为input1
。
输出类也很简单,有一个字符串字段--output1
。
当我使用input1
值“Error”调用此SOAP服务时,我想用SOAP Fault响应并自定义它的Description字段。
否则,我想发送一个定期响应,将output1
字段设置为“success!”。
我尝试使用Action Rule和if
else
语句执行此操作,抛出新的java.lang.Exception。
在input1=="Error"
的情况下,异常是Invoked,并且我在描述字段中打印了带有堆栈跟踪的SOAP Fault消息。
我感兴趣的是如何自定义这个故障响应,所以我可以将description字段设置为“something”,将faultactor字段设置为“something2”,将faultstring设置为“something3”?
我从未见过有人做你想做的事。
一般来说,我不希望SOAP Fault用于报告业务级信息。我希望在SOAP响应中报告业务结果,甚至是负面或异常结果,让SOAP Fault处理服务器级问题。
我鼓励你尽可能少地进行自定义,如果可行的话,可以使用开箱即用的功能。通过HTDS运行ODM的全部目的是标准化所有内容,以避免处理进程间通信问题,从而留出更多时间专注于解决业务级问题。