WSO2 BPS / SOAP - 如何使用HumanTaskClientAPI获取人工任务的结果?

时间:2015-05-21 15:29:06

标签: java soap wso2

我尝试过使用getOuputResponse.getTaskData(),但它返回了一个XML,而GetOutcome方法显然还不受支持。还有其他方法我没有看到或者这是唯一的方法吗?

到目前为止我的代码:

GetOutput getOutput = new GetOutput();
getOutput.setIdentifier(resultRow[0].getId());

GetOutputResponse output = null;

try {

        output = humanTaskClient.getOutput(getOutput);

    } catch (IllegalOperationFault | IllegalArgumentFault e) {
        e.printStackTrace();
    } catch (IllegalStateFault e) {
        e.printStackTrace();
    } catch (IllegalAccessFault e) {
        e.printStackTrace();
    }

    System.out.println("OUTPUT: " + output.getTaskData());

1 个答案:

答案 0 :(得分:1)

你是对的,getOutcome()不起作用。输出是您为任务定义的XML(即,在Human Task定义的WSDL中)。所以你可以解析一下:

TaskOperationsImpl ops = new TaskOperationsImpl();
String output = (String) ops.getOutput(new URI(taskIdString), null);
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
dfactory.setNamespaceAware(true);
DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
Node xmldoc = docBuilder.parse(new ByteArrayInputStream(output.getBytes()));

您可以处理结果。