使用 JAX-RPC 访问 IBM WebSphere Service Registry and Repository
2009-10-23 00:00:00 来源:WEB开发网用于获取存根实例以调用 Service Registry 的代码取决于您的环境以及您是否需要为不同的端点提供 URL,因此上述代码省略了此代码。对 Utilities.createDataGraph 的调用将调用上一部分(标题为“创建 DataGraphType 的实例”)中显示的代码。这里,构件数组中只有单个对象,并且根值是一个临时的 bsrURI 值(因为根值会引用将在 Service Registry 中创建的内容)。
创建多个相关的文档
有多种方法可以通过对 Service Registry 的单次调用来创建多个文档。其中一种方法是将 GenericObject 用作一组文档的根,在此情况下,通过对创建操作的单次调用,将创建 GenericObject 和所有新文档(GenericObject 作为根对象)。只能用这种方法来影响依赖关系(如 WSDL 文档之间的依赖关系)的解析。
另一种方法是构造对象(这些对象之间具有用户定义关系)的数据图。下面是第二种方法的示例。
try {
WSRRCoreSDOPortType wsrrCoreSDOPortType = ...;
// Create document that will be the source of the relationship
XMLDocument doc1 = createSourceDocument();
// Create second document that will be the target of the relationship
XMLDocument doc2 = createTargetDocument();
// Now create the relationship between the two
addRelationship(doc1, doc2);
// Create the DataGraph with the source document as the root object
BaseObject[] artefactArray = new BaseObject[2];
artefactArray[0] = doc1;
artefactArray[1] = doc2;
DataGraphType dg = Utilities.createDataGraph(artefactArray,
doc1.getBsrURI());
String bsrURI = wsrrCoreSDOPortType.create(dg);
System.out.println("Returned bsrURI is " + bsrURI);
} catch (ServiceRegistryWebServiceException srwse) {
System.err.println("Caught ServiceRegistryWebServiceException");
System.err.println("message: " + srwse.getMessage());
} catch (Throwable t) {
t.printStackTrace(System.err);
}
private static void addRelationship(XMLDocument sourceDocument,
XMLDocument targetDocument) {
UserDefinedRelationship udr = new UserDefinedRelationship();
udr.setName("CreateMultipleObjectsTestRelationship");
// Only one target
String[] targets = new String[1];
// Use the temporary bsrURI value to refer to the target object
targets[0] = targetDocument.getBsrURI();
udr.setTargets(targets);
// Add the relationship to the source document
UserDefinedRelationship[] udrs = new UserDefinedRelationship[1];
udrs[0] = udr;
sourceDocument.setUserDefinedRelationships(udrs);
}
更多精彩
赞助商链接