activity工作流启动报错:元素或属性不匹配 QName 生产: QName::=(NCName:)?NCName

activity工作流启动报错:元素或属性不匹配 QName 生产: QName::=(NCName:)?NCName

排查发现是JDK版本的问题,我使用的是JDK1.8.0_301,这个版本会出现启动错误,降低JDK版本到201就可以解决这个问题

org.activiti.bpmn.exceptions.XMLException: Error reading XML
	at org.activiti.bpmn.converter.BpmnXMLConverter.convertToBpmnModel(BpmnXMLConverter.java:312)
	at org.activiti.bpmn.converter.BpmnXMLConverter.convertToBpmnModel(BpmnXMLConverter.java:284)
	at org.activiti.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:148)
	at org.activiti.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.createBpmnParseFromResource(ParsedDeploymentBuilder.java:96)
	at org.activiti.engine.impl.bpmn.deployer.ParsedDeploymentBuilder.build(ParsedDeploymentBuilder.java:55)
	at org.activiti.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:66)
	at org.activiti.engine.impl.persistence.deploy.DeploymentManager.deploy(DeploymentManager.java:58)
	at org.activiti.engine.impl.persistence.deploy.DeploymentManager.resolveProcessDefinition(DeploymentManager.java:123)
	at org.activiti.engine.impl.persistence.deploy.DeploymentManager.findDeployedProcessDefinitionById(DeploymentManager.java:76)
	at org.activiti.engine.impl.util.ProcessDefinitionUtil.getBpmnModel(ProcessDefinitionUtil.java:65)
	at org.activiti.engine.impl.cmd.GetBpmnModelCmd.execute(GetBpmnModelCmd.java:41)
	at org.activiti.engine.impl.cmd.GetBpmnModelCmd.execute(GetBpmnModelCmd.java:26)
	at org.activiti.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:37)
	at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:78)
	at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:57)
	at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:42)
	at org.activiti.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:48)
	at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:59)
	at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)
	at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:29)
	at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44)
	at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:39)
	at org.activiti.engine.impl.RepositoryServiceImpl.getBpmnModel(RepositoryServiceImpl.java:142)
	at org.activiti.runtime.api.model.impl.APIProcessDefinitionConverter.from(APIProcessDefinitionConverter.java:40)
	at org.activiti.runtime.api.model.impl.APIProcessDefinitionConverter.from(APIProcessDefinitionConverter.java:24)
	at org.activiti.runtime.api.model.impl.ListConverter.from(ListConverter.java:28)
	at org.activiti.spring.ProcessDeployedEventProducer.onApplicationEvent(ProcessDeployedEventProducer.java:59)
	at org.activiti.spring.ProcessDeployedEventProducer.onApplicationEvent(ProcessDeployedEventProducer.java:39)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
	at org.springframework.boot.context.event.EventPublishingRunListener.running(EventPublishingRunListener.java:108)
	at org.springframework.boot.SpringApplicationRunListeners.running(SpringApplicationRunListeners.java:77)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:330)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
	at com.ltw.workflow.LtwWorkflowApplication.main(LtwWorkflowApplication.java:25)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,225]
Message: 元素或属性不匹配 QName 生产: QName::=(NCName:)?NCName。
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:604)
	at org.activiti.bpmn.converter.BpmnXMLConverter.convertToBpmnModel(BpmnXMLConverter.java:309)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好,将CXF SOAP消息中的Header转换成SOAP-ENV:Header可以通过以下步骤实现: 1. 获取CXF SOAP消息的Header部分。 2. 创建一个新的SOAP消息,并设置命名空间为“http://schemas.xmlsoap.org/soap/envelope/”。 3. 创建一个SOAP-ENV:Header元素,并将其添加到新创建的SOAP消息中。 4. 将CXF SOAP消息的Header部分添加到SOAP-ENV:Header元素中。 5. 将新创建的SOAP消息作为输出,即可得到将CXF SOAP消息中的Header转换成SOAP-ENV:Header的结果。 下面是一个示例代码: ```java // 获取CXF SOAP消息的Header部分 SOAPMessage cxfSoapMessage = ...; SOAPHeader cxfSoapHeader = cxfSoapMessage.getSOAPHeader(); // 创建新的SOAP消息 MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); SOAPMessage newSoapMessage = messageFactory.createMessage(); newSoapMessage.getSOAPPart().getEnvelope().addNamespaceDeclaration("soapenv", "http://schemas.xmlsoap.org/soap/envelope/"); // 创建SOAP-ENV:Header元素 SOAPHeaderElement soapHeaderElement = newSoapMessage.getSOAPHeader().addHeaderElement(new QName("http://schemas.xmlsoap.org/soap/envelope/", "Header", "soapenv")); // 将CXF SOAP消息的Header部分添加到SOAP-ENV:Header元素中 Iterator<SOAPElement> iterator = cxfSoapHeader.getChildElements(); while (iterator.hasNext()) { SOAPElement soapElement = iterator.next(); soapHeaderElement.addChildElement(soapElement); } // 输出SOAP消息 newSoapMessage.writeTo(System.out); ``` 希望能帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值