下载CXF
生成客户端代码
tar -zxvf apache-cxf-3.2.7.tar.gz
cd apache-cxf-3.2.7/bin wsdl2java
-client -server -impl -p 代码包路径 -d 代码生成路径 wdsl服务url或者wdsl文件路径
-
说明:先启动泛微E9,访问 wsdl 是不是可以成功访问
http://127.0.0.1:80/services/WorkflowService?wsdl
端口写自己的访问E9的端口,展示效果为:
-
样例:
wsdl2java -d E:\code\createWorkflow\src -client http://127.0.0.1:80/services/WorkflowService?wsdl
-
idea 项目打开效果
编写测试代码
- 参考网页
- 流程接口文档
根据流程3 中的代码修改成自己对应流程的代码
- 创建流程的参数一级对应的错误码
- 调用成功返回结果(流程id):
- 登陆创建的账号查看效果
具体代码
import cn.com.weaver.services.webservices.WorkflowService;
import weaver.workflow.webservices.*;
/**
* @program: ecology_zp
* @author: Mr.zeng
* @create: 2020-12-16 11:53
* 创建流程测试
**/
public class DoCreateRequestTest {
public static void main(String[] args) {
try{
new DoCreateRequestTest().execute1();
}catch (Exception e){
e.printStackTrace();
}
}
public void execute1() {
ObjectFactory factory = new ObjectFactory();
WorkflowService service = new WorkflowService();
WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();//工作流程请求信息
int userid = 21;//用户ID 数据库中用户id
// workflowRequestInfo.setRequestId(String.valueOf(1918557));//流程请求ID-创建流程时自动产生 不需要传此项
workflowRequestInfo.setCanView(true);//显示
workflowRequestInfo.setCanEdit(true);//可编辑
workflowRequestInfo.setRequestName(factory.createWorkflowRequestInfoRequestName("流程请求标题-webservice-test-axis2"));
workflowRequestInfo.setRequestLevel(factory.createWorkflowRequestInfoRequestLevel("0"));//请求重要级别 0:正常 1:重要 2:紧急
workflowRequestInfo.setCreatorId(factory.createWorkflowRequestInfoCreatorId("21"));//创建者ID 创建流程时为必输项
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();//工作流信息
workflowBaseInfo.setWorkflowId(factory.createWorkflowBaseInfoWorkflowId("22"));//流程ID
workflowBaseInfo.setWorkflowName(factory.createWorkflowBaseInfoWorkflowName("测试webservice流程"));//流程名称
// workflowBaseInfo.setWorkflowTypeId("1951");//流程类型id
workflowBaseInfo.setWorkflowTypeName(factory.createWorkflowBaseInfoWorkflowTypeName("测试"));//流程类型名称
workflowRequestInfo.setWorkflowBaseInfo(factory.createWorkflowRequestInfoWorkflowBaseInfo(workflowBaseInfo));
/****************main table start*************/
WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();//主表
WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1];//主表字段只有一条记录
WorkflowRequestTableField[] workflowRequestTableFields = new WorkflowRequestTableField[1];//主的4个字段
workflowRequestTableFields[0]= new WorkflowRequestTableField();
workflowRequestTableFields[0].setFieldName(factory.createWorkflowRequestTableFieldFieldName("fj"));//附件
workflowRequestTableFields[0].setFieldType(factory.createWorkflowRequestTableFieldFieldType("http:baidu_sylogl.gif"));//http:开头代表该字段为附件 多附件用baidu_sylogl.gif|baidu_sylog1l.gif分隔
workflowRequestTableFields[0].setFieldValue(factory.createWorkflowRequestTableFieldFieldValue("http://www.baidu.com/img/fddong_e2dd633ee46695630e60156c91cda80a.gif"));
workflowRequestTableFields[0].setView(true);
workflowRequestTableFields[0].setEdit(true);
ArrayOfWorkflowRequestTableField arrayOfWorkflowRequestTableField=new ArrayOfWorkflowRequestTableField();
arrayOfWorkflowRequestTableField.getWorkflowRequestTableField().add(workflowRequestTableFields[0]);
WorkflowRequestTableRecord workflowRequestTableRecord1 = new WorkflowRequestTableRecord();
workflowRequestTableRecord1.setWorkflowRequestTableFields(factory.createWorkflowRequestTableRecordWorkflowRequestTableFields(arrayOfWorkflowRequestTableField));
ArrayOfWorkflowRequestTableRecord arrayOfWorkflowRequestTableRecord = new ArrayOfWorkflowRequestTableRecord();
arrayOfWorkflowRequestTableRecord.getWorkflowRequestTableRecord().add(workflowRequestTableRecord1);
workflowMainTableInfo.setRequestRecords(factory.createWorkflowMainTableInfoRequestRecords(arrayOfWorkflowRequestTableRecord));
workflowRequestInfo.setWorkflowMainTableInfo(factory.createWorkflowRequestInfoWorkflowMainTableInfo(workflowMainTableInfo));
// ArrayOfWorkflowDetailTableInfo arrayOfWorkflowDetailTableInfo = new ArrayOfWorkflowDetailTableInfo();
// arrayOfWorkflowDetailTableInfo.getWorkflowDetailTableInfo().add(workflowDetailTableInfo[0]);
// arrayOfWorkflowDetailTableInfo.getWorkflowDetailTableInfo().add(workflowDetailTableInfo[1]);
// workflowRequestInfo.setWorkflowDetailTableInfos(factory.createWorkflowRequestInfoWorkflowDetailTableInfos(arrayOfWorkflowDetailTableInfo));
/****************detail table end*************/
String response = service.getWorkflowServiceHttpPort().doCreateWorkflowRequest(workflowRequestInfo,userid);
System.out.println("返回结果:"+response);
}
}
ps:用户id、流程id在数据库中查,名称和类型在表单中都可以看到
org.codehaus.xfire.jaxws.Provider