WSO2 ESB编译真是费劲,编译得花费四五个小时。先是编译4.8.0版本,缺少各种jar包转战到4.7.0版本,最后发现原来是公司网络原因,崩溃。4.7.0版本网上有人已经编译成功,又花了几天时间终于编译完成了。
wso2的一个产品,所有的wso2产品都是基于carbon的。Wso2esb是基于Apache Synapse项目的,Apache Synapse是Apache Axis2 项目的一个分支。
A WSO2 Product = Carbon Kernel + Set of features。
Carbon是个基于eclipse equinox的基础整合OSGi框架容器,是一个集成的组件化的平台,在上面可以很方便地开发部署你需要的服务组件,不用担心服务管理,安全和扩展性问题,基于OSGi(java开放服务网关标准)提供更好的模块化和组件化,是一种OSGi兼容的中间件。
Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 规范的开放源代码实现。有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。
Web Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架,是一个全功能的Web服务实现框架,比Axis 1.x 模块化更强、灵活性更高、更有效,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-Reliable Messaging 等)的实现中。
OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。OSGi技术提供一种面向服务的架构,能使组件动态地发现对方。OSGi联盟已经开发了像HTTP服务器、配置、日志、安全、用户管理、XML等很多公共功能标准组件接口。
Equinox其实就是OSGi核心标准的完整实现,并且还在这个基础上增加了一些额外的功能(比如为框架增加了命令行和程序执行的入口)。我们能够利用Equinox项目的代码来运行一个实实在在的OSGi框架,框架启动后,可以将开发好的组件放到里面运行。
Carbon/Orbit
Kernel
platform
l Orbit绑定第三方依赖。wso2不包含的,但一些产品需要的。
l kernel包含产品运行的carbon平台的核心代码。
l platform包含carbon平台的所有产品。
编译源代码时,需先编译orbit,然后kernel,然后platform。
一般WSO2 platform结构如下:
Turning/Build
Components
Dependencies
Features
Parent
platform-integration
patch-releases
Products
Samples
service-stubs
l build:云层stratos2配置用到的。
l components:实际组件源代码所在地。
l dependencies:产品所用的依赖。
l features:产品功能,每个功能可能包含多个组件。
l parent:父依赖。
l platform-integration:
l patch-releases:发布的各个版本产品的依赖。
l products:包含esb4.7.0产品。
l samples:提供的示例。
l Service-stubs:wsdl2 java代码生成的组件,客户端。
WSO2 ESB是基于carbon的。carbon是个基于eclipse equinox的基础整合OSGi框架容器。所以,要编译wso2esb,需要先编译carbon,最后再编译esb。
Carbon目录下包含orbit,kernel,platform,需先编译orbit,然后kernel,然后platform。WSO2 ESB4.7.0的源码基于Carbon4.1.0。orbit4.1.0,kernel4.1.0,platform4.1.5。
Orbit:https://svn.wso2.org/repos/wso2/carbon/orbit/tags/4.1.0/
Kernel:https://svn.wso2.org/repos/wso2/carbon/kernel/tags/4.1.0/
Platform:https://svn.wso2.org/repos/wso2/carbon/platform/tags/4.1.5/
Orbit:G:\wso2\4.7.0srcsoftware\orbit4.1.0> mvn clean install
Kernel:G:\wso2\4.7.0srcsoftware\kernel4.1.0> mvn clean install
Platform:G:\wso2\4.7.0srcsoftware\4.1.0> mvn clean install
首次编译kernel和platform都会出现这个问题,如图所示:
修改mvn.bat 设置set MAVEN_OPTS=-Xms768m -Xmx3072m -XX:MaxPermSize=1200m
mvn clean install 重新运行
G:\wso2\4,8.0srcsoftware\turing-chunk04\product-releases\chunk-04>mvn clean install出现下列错误,4.7.0出现同样错误。
G:\wso2\4,8.0srcsoftware\turing-chunk04\dependencies\synapse\2.1.2-wso2v2\modules\securevault 修改pom.xml配置文件,或者改compile版本号2.3.2,上述错误变成警告,编译通过。
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>1.8.1</version>
</dependency>
上述报错文件中涉及中文,4.7.0同样错误
G:\wso2\4,8.0srcsoftware\turing-chunk04\dependencies\staxon\1.2.0-wso2v2
修改pom.xml文件,添加<encoding>GBK</encoding>
编译期间经常会出现类似上述错误,可以从网站手动下载jar包并安装。如http://maven.wso2.org/nexus/content/groups/wso2-public下载hive 的所有jar包,手工安装,重新运行。
然后报错缺少hive-cassandra jar包,上面网址没有该jar包。因为hive jar包目前我们用不上,所以在G:\wso2\4.7.0srcsoftware\4.1.5\components\analytics\org.wso2.carbon.hive.data.source.access\4.1.0 路径下修改pom,去掉所有hive依赖,重新编译即可。
公司网络原因,屏蔽了某些网站或端口,使用ForeFront TMG代理。