Maybe there is no direct unsolved dependency in your service, but probably it’s invoking some other services that would has unsolved dependency.
You could try the service below to find out all unsolved dependencies for any node, not just service.
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import com.softwareag.util.IDataMap;
import com.wm.lang.ns.DependencyManager;
import com.wm.lang.ns.NSName;
import com.wm.lang.ns.NSNode;
import com.wm.app.b2b.server.ns.NSDependencyManager;
import com.wm.app.b2b.server.ns.Namespace;
public static final void checkInvalidRefs(IData pipeline)
throws ServiceException {
IDataMap pipelineMap = new IDataMap(pipeline);
String nodeName = pipelineMap.getAsString("nodeName");
List<IData> invalidRefs = new ArrayList<IData>();
NSNode nsNode = Namespace.current().getNode(NSName.create(nodeName));
DependencyManager dm = NSDependencyManager.current();
if ((dm == null) || (!dm.isEnabled())) {
throw new ServiceException("Dependency Manager is not enabled");
}
Stack<IData> referencedStack = new Stack<IData>();
IData referenced = dm.getReferenced(nsNode, null);
if (referenced == null){
return;
}else{
referencedStack.push(referenced);
}
while (!referencedStack.isEmpty()){
IData referencedData = referencedStack.pop();
IDataMap referencedDataMap = new IDataMap(referencedData);
String name = referencedDataMap.getAsString("name");
String path = referencedDataMap.getAsString("refPath");
String status = referencedDataMap.getAsString("status");
if (status.equalsIgnoreCase("reference")){
IData[] references = referencedDataMap.getAsIDataArray("reference");
for (int i = 0; i < references.length; i++){
IData reference = references[i];
IDataMap referenceMap = new IDataMap(reference);
String referenceName = referenceMap.getAsString("name");
String referenceStatus = referenceMap.getAsString("status");
if (referenceStatus.equalsIgnoreCase("unresolved")){
IData invalidRef = IDataFactory.create();
IDataMap invalidRefMap = new IDataMap(invalidRef);
invalidRefMap.put("nodeName", referenceName);
invalidRefMap.put("refPath", path == null ? name : path);
invalidRefs.add(invalidRef);
}else if (referenceStatus.equalsIgnoreCase("reference")){
referenceMap.put("refPath", (path == null ? name : path) + "," + referenceName);
referencedStack.add(reference);
}
}
}
}
pipelineMap.put("invalidRefs", invalidRefs.toArray(new IData[invalidRefs.size()]));
}
Inputs:
nodeName - String
Outputs:
invalidRefs - Document Type List
nodeName - String
refPath - String
#Integration-Server-and-ESB#webMethods#Flow-and-Java-services