Cúram 事件适配器上可调用三种 API 方法来创建 CAP 消息并将其发布到 Intelligent Operations Center 的 WebSphere Message Broker 实例中。
SimplePublisher 接口允许发布具有多个缺省值填充值的 CAP 消息。此方法将 SimpleHeader 中的值和缺省值分配给 CAPHeader。随后此 CAPHeader 将作为参数传递给 curam.eventadaptor.publishers.intf.CAPPublisherIntf.publish 方法。
SimpleHeader 允许在 CAP 消息中设置一些值。可设置的值包括:
其余为缺省值,根据环境变量(在代码表中定义)进行设置。
值名称 | 缺省值 |
---|---|
标识 | 随机值 |
类别 | “事件” |
代码 | “其他” |
确定性 | “已观测” |
消息类型 | “警报” |
范围 | “公共” |
严重性 | “中等” |
状态 | “实际” |
紧急程度 | “未知” |
以下代码段说明如何使用 SimplePublisherIntf。
@Inject
private TargetSystemDAO targetSystemDAO;
@Inject
SimplePublisher simplePublisher;
public ClassConstructor(string arg0) {
super(arg0);
GuiceWrapper.getInjector().injectMembers(this);
}
public simplePublisherSample() {
// How to set up the variables that are passed to the publish method
SimpleHeader simpleHeader = new SimpleHeader();
simpleHeader.description = "Sample description";
simpleHeader.event = "Sample event title";
simpleHeader.headline = "Sample headline";
simpleHeader.sender = "Sample sender";
simpleHeader.onset = header. DateTime.getCurrentDateTime();
EventAdaptorNVPair nvPair1 = new EventAdaptorNVPair();
nvPair1.name = "parameter1 name";
nvPair1.value = "parameter1 value";
EventAdaptorNVPair nvPair2 = new EventAdaptorNVPair();
nvPair2.name = "parameter2 name";
nvPair2.value = "parameter2 value";
nvPairList.dtls.add(nvPair1);
nvPairList.dtls.add(nvPair2);
// Call the publish method
simplePublisher.publish(simpleHeader, nvPairList, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}
CAPPublisher 接口允许发布所有值都由 CAPHeader 参数中传递的值来填充的 CAP 消息。
此方法会验证 CAPHeader。随后会使用头内容通过 capXMLBuilder.convertToDocument() 来构建 CAP XML。然后会将此变换中的输出作为参数传递给 curam.eventadaptor.publishers.intf.XMLPublisherIntf.publish 方法。
以下代码段说明如何使用 CAPPublisherIntf。
@Inject
private TargetSystemDAO targetSystemDAO;
@Inject
CAPPublisher capPublisher;
public ClassConstructor(string arg0) {
super(arg0);
GuiceWrapper.getInjector().injectMembers(this);
}
public capPublisherSample() {
// How to set up the variables that are passed to the publish method
CAPHeader capHeader = new CAPHeader();
capHeader.description = "Sample description";
capHeader.event = "Sample event name";
capHeader.headline = "Sample headline";
capHeader.identifier = "sampleIdentifier";
capHeader.sender = "Sample sender";
capHeader.category = EAALERTINFOCATEGORY.FIRE;
capHeader.certainty = EAALERTINFOCERTAINTY.LIKELY;
capHeader.messageType = EAALERTMESSAGETYPE.UPDATE;
capHeader.onset = DateTime.getCurrentDateTime();
capHeader.senderName = "the sendername";
capHeader.scope = EAALERTSCOPE.PRIVATE;
capHeader.severity = EAALERTINFOSEVERITY.EXTREME;
capHeader.status = EAALERTSTATUS.TEST;
capHeader.urgency = EAALERTINFOURGENCY.EXPECTED;
capHeader.code = EAALERTCODE.EVENT;
capHeader.webIdentifier = "http://www.curamsoftware.com";
EventAdaptorNVPairList nvPairList = new EventAdaptorNVPairList();
EventAdaptorNVPair nvPair1 = new EventAdaptorNVPair();
nvPair1.name = "parameter1 name";
nvPair1.value = "parameter1 value";
EventAdaptorNVPair nvPair2 = new EventAdaptorNVPair();
nvPair2.name = "parameter2 name";
nvPair2.value = "parameter2 value";
nvPairList.dtls.add(nvPair1);
nvPairList.dtls.add(nvPair2);
// Call the publish method
capPublisher.publish(capHeader, nvPairList, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}
XMLPublisher 接口允许发布具有文档参数中传递的 XML 文档的 SOAP 消息。由于 XML 是定制的,所以这能最大程度地控制任何 API 发布。当“事件适配器”要和不与 CAP 消息配合使用的外部服务进行交互时,或者当首选项是定制工种 CAP 消息时,将使用此方法。
如果“外部事件类型”已启用,那么它将验证 XML,然后将文档发布到 Web Service 端点。如果“事件类型”未启用,那么它将不会发布文档。
以下代码段说明如何使用 XMLPublisherIntf。
@Inject
private TargetSystemDAO targetSystemDAO;
@Inject
XMLPublisher xmlPublisher;
public ClassConstructor(string arg0) {
super(arg0);
GuiceWrapper.getInjector().injectMembers(this);
}
public xmlPublisherSample(Document document) {
// Call the publish method
XmlPublisher.publish(document, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}