目的:将最新版(6.4.0)部署在linux服务器,与Api Manager部署在同一环境
环境:
Centos 7.3
Jdk 8
Mysql 5.7
问题一: 将H2替换为Mysql5.7数据库时提示无法找到驱动
解决方式:官方文档给出的驱动程序位置有误,应为<EI_HOME>/lib,将5.7对应的驱动mysql-connector-java-8.0.14.jar存放在该目录,相应的dropins中也会复制一个驱动。
问题二:启动后与API Manager大量的端口冲突
解决方式:因两款产品用到相同的技术手段,且大量的端口配置相同,因此部署在同一服务器时自然会冲突,如果一个一个查端口,再单独修改,工作量惊人,还好WOS2想到了该问题,只需要在启动EI时添加端口偏移量即可
命令:./integrator.sh -DportOffset=3 (端口号均增加3)
问题三:修改完Mysql5.7提示连接不上
解决方式:类似于我另一篇博客,是数据库SSL问题,关闭即可
问题四:启动后提示缺少WSO2 Indenty Server相关类库
原因:与Api Manager采用了同样的数据库,但还没有部署同一的认证服务期,因此报错,解决方式:
1)部署Wso2 IS(还没试)
2)与AM不共用库
问题五:运行成功后,ServerIp为localhost
参考文献:https://docs.wso2.com/display/EI611/Configuring+carbon.xml
(1) Host 显示不准确
解决方法:修改../conf/carbon.xml文件中的HostName,改为服务器的ip地址即可
问题六:按照官方的教程Sending a Simple Message to a Service运行 ,卡在运行msf4j.sh上,运行报错端口被占用。但坑爹的是不告诉你哪个端口被占用。
解决方法:在google中搜索相关内容,找到了WSO2的所有端口信息https://docs.wso2.com/display/EI610/Default+ports+of+WSO2+EI 相关的端口可能是9090,在linux服务器上查询,发现有可能是gitlab的端口占用。查了一下午资料,试了端口offset不行,怀疑是服务jar包端口占用,删了也同样报错,后来终于发现9090端口的配置位置:/usr/lib64/wso2/wso2ei/6.4.0/wso2/msf4j/conf/transports/netty-transports.yml 即可。
问题七:问题六改完后报新错: