转载请注明出处:http://www.nuulee.cn/index.php?n=Tech.ApacheODE源码运行
前段时间写了一篇针对Apache ODE1.2的源码运行的文章,但是后来由于一个自己未能解决的问题,而不能正常使用。这个问题就是在将ODE的数据存储方式改到数据库之后(默认的内存数据库,这只能作为测试使用),删除流程,然后重启引擎就会出错,并且再次重启无法解决该问题。报的错误是DBerror,是由于IllegalArgumentException引起的,java.util.HashMap is not an interface. 原本想着这是ODE1.2的一个bug,但是通过ODE1.2的二进制版本运行是正常的。弄得自己很无奈,最后还是寄希望于ODE的新版本1.3.3,希望能解决这个问题,而且更好的是ODE1.3版本提供了ODE的管理portal,虽然简单,但是大致框架已经有了,这对后面该部分的开发会很有用处,所以还是转向了ODE1.3.3这个新版本。但其实,新版本同样存在这个问题,最后还是铁下心仔细阅读源码,终于发现了这个BUG,现在准备给ODE-dev这个邮件组发信呢,报告下BUG,呵呵
至于如何下载、安装、编译、以及导入Eclipse还有差错的一些操作,可以查看上面提到的Apache ODE1.2源码运行的那篇文章。这里只对ODE1.3里面新遇到的一些问题做出解释。
1.数据库连接
对于每一个更新的源代码工程连接数据库,必须使用新构架的数据库,才能连接成功。不能因为ODE的版本一样就使其连接相同的数据库。
经过重新构建一个数据库进行连接后,上述的异常解决
2.源码包中的target/generate包
该包包括了编译时候生成的很多文件,主要是一些接口文件、XSD文件等等,需要将该文件夹设为源码包对待,这样在WEB工程部署时,才会拷贝这些文件,要不会报错。
3.src文件夹下的main包
webapp文件夹包括了ODE1.3中的web页面文件,可以将这些文件直接拷贝到你的WebRoot文件夹下
wsdl文件夹包括了几个wsdl文件,这在ODE启动是要使用到的,将这些文件拷贝到WEB-INF文件夹下,还有另外一些文件,需要和二进制版的ODE进行比较,如果发现缺少什么,直接从二进制版下拷贝过来即可,但是,记住不要lib包下的ode开头的那些jar包,那些都是已经打包的源程序,道理我就不多说了。
4. 报错ODE-store或者ode-dao持久化什么找不到,这类错误
该错误是由于persistence.xml的设置问题,该文件是持久化实现类的配置文件,上面的错误就是说找不到该文件。这个文件有三个,ode-store、ode-dao、ode-unit-test的,我只在target/classes/META-INF文件夹下找到一个,其他的直接从二进制的jar文件中解压出来的,这个需要找ode-store那个jar包,有兴趣的童鞋,可以在源码中好好找下,如果找到具体位置,告诉我下哦,呵呵。找到这三个文件之后,把这三个文件合并为一个,怎么合并,大家一看就明白。然后,记住,将该文件拷贝到src/test/resources文件夹下。这样就可以解决上述问题
5.部署运行出现异常Cannot load SchemaTypeSystem. Unable to load class
由于ODE在运行时候,需要很多由xsd文件生成的java类作支持,而这一步需要由rake工具来完成,而对于该工具并不是熟悉。所以直接从WAR方式部署的ODE的lib/ode-bpel-schemas-1.3.3.jar文件中的
chemaorg_apache_xmlbeans/system\s3B45226C5D1D7A30D02E005E24CD7BEA/
TypeSystemHolder.class,拷贝到你的source版本中的相应位置,这样就可以解决该问题。
6.异常:javax.naming.exception jdbc is not bound to this context.
该异常是由于无法绑定jdbc模块所引起,所以查看WEB-INF文件夹下的web.xml文件,将其中的最下面的关于datasource定义的一段注释去掉。这样,JDBC便可以加载
7.最为重要的一个,也是我感觉最为得意的一个,呵呵,臭美一下,大家不要拍我哦
就是java.util.HashMap is not an interface的异常的解决。
将org.apache.ode.store.jpa.ProcessConfDaoImpl文件中的第48行的HashMap改为Map接口即可,虽然只是很简单的修改,但是确实费了很大的功夫,才定位到这里。因为这确实是由于ode源码的错误造成的运行异常。
经过上面这些查错调试之后,ODE1.3.3顺利运行,删除流程,重新部署都不会程序任何问题,但目前还不能确定将来又会出现什么新问题,如果有我会继续贴出来,希望大家也能给与帮助。
分享到:
相关推荐
Apache ODE(OpenESB Data Engine)是Apache软件基金会的一个开源项目,专注于业务流程执行(BPEL,Business Process Execution Language)服务。BPEL是一种用于编写和部署业务流程和服务编排的标准XML语言。本教程...
### Apache ODE 架构详解 #### 一、概述 Apache ODE (Orchestration Director Engine) 是一款基于BPEL (Business Process Execution Language) 的开源业务流程管理系统。其核心功能在于提供一个轻量级、可扩展且...
BPEL实例,Apache-ODE,Eclipse 该教程详细讲述了开发一个BPEL业务流程的详细步骤。先手动写好两个服务,一个是加法服务,一个是减法服务,然后希望构建一个bpel流程,该流程能够根据用户的输入来决定是调用加法服务...
Apache ODE 支持长期运行和短期运行的业务流程。 #### 二、BPEL 和 Apache ODE 的重要性 在面向服务架构 (SOA) 的世界里,BPEL 被广泛用于描述复杂的业务流程。它是一种基于 XML 的语言,能够定义 Web 服务之间的...
Apache ODE 开发指南 Apache ODE 是一个基于 Web 服务的业务流程执行引擎,旨在提供一个灵活、可扩展、可靠的流程执行环境。ODE 的关键组成部分包括 ODE BPEL 编译器、ODE BPEL 引擎 Runtime、ODE 数据访问对象...
本文档主要介绍了如何在 Eclipse 中搭建 BPEL 项目,包括安装和配置 Apache ODE、BPEL Designer 插件,并提供了一个小例子。 环境配置 在开始之前,需要安装 Eclipse IDE for Java EE Developers(Luna),这是一...
Apache Tomcat在Apache ODE中起着关键的作用,因为它为ODE提供了运行环境。ODE作为一个Servlet,可以在Tomcat这样的容器中部署并运行,接收HTTP请求,执行BPEL流程,并返回响应。在设置和配置Apache ODE时,通常需要...
VS 2008 ODE 源码是一款基于Visual Studio 2008的开源物理引擎,专门用于游戏开发。ODE(Open Dynamics Engine)是一个强大的动态模拟库,它能够帮助开发者实现复杂物理环境下的物体运动模拟,如碰撞检测、刚体动力...
综上所述,"ODE45_ODE45_常微分方程_源码.zip"中的内容将提供一个深入理解MATLAB中常微分方程数值求解的实践平台,通过分析和运行源码,我们可以更好地掌握ODE45的使用技巧,并将其应用到实际问题中。
通过运行和分析这些实例,你可以学习如何将ODE集成到自己的项目中,以及如何解决实际问题。 3. ODE经典资料: 这部分学习资料可能包括教程、论文、论坛讨论和博客文章等,它们涵盖了ODE的基础知识、高级特性以及...
"Candidate Solution_ode_源码"这个项目显然是针对求解微分方程问题的,而"ode"标签则直接指明了主要涉及的是常微分方程(Ordinary Differential Equations,简称ODE)的求解。 微分方程是描述系统动态变化的一种...
_Equations_matlab_matlabode_源码"这个压缩包提供了一组MATLAB代码,旨在帮助用户更有效地解决ODE问题。下面我们将详细探讨MATLAB中的ODE求解器以及如何使用它们。 MATLAB提供了多个内置的ODE求解器,如ode45、ode...
Apache ODE(OpenESB Data Engine)是一个开源的BPEL(Business Process Execution Language)服务器,它是基于Java的,主要用于执行和管理业务流程。BPEL是一种用于描述企业服务总线(ESB)中业务流程的XML语言。在...
通过这些步骤,读者可以了解到如何利用Eclipse和Apache ODE等工具来构建复杂的业务流程。BPEL作为一种标准化的业务流程语言,能够在不同的系统之间实现业务流程的自动化和集成,对于企业级应用开发具有重要的意义。
Eclipse BPEL 需要在 Eclipse IDE 中安装 BPEL Designer 插件,并配置 Apache ODE(BPEL 解析器)。首先,需要下载 Apache ODE 并将其解压到 Tomcat 的 webapps 目录下,然后启动 Tomcat 并输入 ...
这个标题“odefunc_ode45齿轮_ODE45_齿轮odefunc_齿轮_齿轮ode45_源码”表明我们正在探讨一个涉及到行星齿轮系统的动力学分析问题,该问题通过ode45函数进行数值模拟。在这个场景中,"odefunc"很可能是指定义了行星...
Apache ODE(OpenESB Dieployment Engine)是一个开源BPEL服务器,它实现了WS-BPEL 2.0规范,可以在多种Java应用服务器上运行,如Tomcat。 2. **Eclipse中加载BPEL Designer插件** - BPEL Designer是Eclipse的扩展...
在本指南中,我们将详细介绍如何搭建一个基于ActiveBPEL、Apache ODE、Apache Tomcat和JDK 1.5的BPEL运行环境。 **一、Apache ODE简介** Apache ODE(Orchestration Director Engine)是开源社区的一个BPEL引擎,...