我最近开始使用 JBoss 的 Wildfly 8.1 和 activiti 框架。
我创建了两个项目,一个包含我的 bpmn.xml 文件和服务任务的类:
Process:
-src/main/
-impl.java
-src/resources/
-diagrams
-myprocess.bpmn.xml
-config
-activiti-context.xml
另一个持有 servlet
WebTest:
-src/main
-testServlet.java
-lib
-process.jar
在我的 servlet 中,我实现了 init 方法来获取 Activiti processEngine:
@Override
public void init() throws ServletException{
super.init();
engine = ProcessEngines.getDefaultProcessEngine();
}
我构建了 Webtest.war 文件并将其部署到
D:/path/to/workingdir/wildfly-8.1.0.Final/**standalone/deployments**/Webtest.war
然后我使用提供的standalone.bat启动Widlfly,它正确启动并部署到上下文/Webtest,到目前为止一切顺利。
如果我现在访问 localhos:8080/Webtest/servlet 我得到异常:
org.activiti.engine.ActivitiException: 无法从spring配置资源vfs:/D:/path/to/workingdir/wildfly-8.1.0.Final/bin/content/TEST-1.war/WEB-初始化流程引擎INF/ lib/process.jar/activiti-context.xml:空
最后带有 :null 的错误意味着无法访问该文件。当然不能,没有 bin/content!
我现在的问题是:Widfly 从哪里得到查看 bin/content 的想法?它显然能够自己找到配置文件,我从来没有告诉 spring 或 activiti 去查看 process.jar,所以应用程序在类路径中找到了配置,好吧......然后它继续从一个完全不同的文件中读取文件不存在的位置?
我不知道这是否有兴趣,但这是我的 activiti-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"/>
</beans>
感谢您的帮助或提示!