我在我的 maven 项目中包含了一个 .jar
,在 pom.xml
中编写了这个:
<dependencies>
<dependency>
<groupId>org.loopingdoge.acme.model</groupId>
<artifactId>acme-model</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/acme-model.jar</systemPath>
</dependency>
</dependencies>
acme-model.jar
包含 org.loopingdoge.acme.model.House
但是这个 cast
public class HouseAdder implements JavaDelegate {
public void execute(DelegateExecution delegateExecution) throws Exception {
House house = (House) delegateExecution.getVariable("house");
}
}
在 Wildfly 服务器上部署时出现此错误:
18:50:20,255 ERROR [org.camunda.bpm.engine.context] (default task-45) ENGINE-16004 Exception while closing command context: org.loopingdoge.acme.model.House cannot be cast to org.loopingdoge.acme.model.House: java.lang.ClassCastException: org.loopingdoge.acme.model.House cannot be cast to org.loopingdoge.acme.model.House at org.loopingdoge.acme.services.HouseAdder.execute(HouseAdder.java:13)
最佳答案
当一个类将通过不同的类加载器加载时,就会发生这种情况。即使包和类名相同,java 也会使它们不同。
您需要找出加载此类的方式。第一步,找到包含该类的 jar 。
关于java - Camunda:不能施放(同一类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825044/