WSO2ESB可以独立自己跑,使用tomcat作为服务器,总觉得有些不放心,还是想把它部署到WebSphere中。
在wso2wsb的官方文档中有关于部署的说明。http://wso2.org/project/esb/java/4.0.3/docs/webapp_deployment_guide.html
按照上面说的一步一步的做。
1、输出环境变量
CARBON_HOME=/opt/software/esb-home
CARBON_HOME指向wso2esb的安装目录
2、新建一个目录,比如叫wso2esbwar,然后将$CARBON_HOME/lib/core/WEB-INF目录复制进去。然后将$CARBON_HOME/lib/api目录下的所有文件复制到 wso2esbwar/WEB-INF/lib中。最后将wso2esbwar里面的文件压缩成zip格式,改名为wso2esbwar.war
3、将wso2esbwar.war发布到WebSphere中,web上下文为“esb”。设置这个应用程序的类加载器为“父类最后”.发布完不要启动这个应用。
4、修改wso2esb的配置文件。这一步比较晕,要谨慎。
$CARBON_HOME/repository/conf/carbon.xml文件
将ServerURL改为下面内容,其中9444是websphere的https通讯端口。
<ServerURL>https://192.168.1.200:9444/esb/services/</ServerURL>
将KeyStore和TrustStore配置信息中的Location改为绝对路径,如:
<KeyStore>
<Location>/home/menghui/gzpt/code/wso/wso2esb-4.0.0/repository/resources/security/wso2carbon.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
<KeyAlias>wso2carbon</KeyAlias>
<KeyPassword>wso2carbon</KeyPassword>
</KeyStore>
<TrustStore>
<Location>/home/menghui/gzpt/code/wso/wso2esb-4.0.0/repository/resources/security/client-truststore.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
</TrustStore>
修改$CARBON_HOME/repository/conf/axis2.xml文件
修改Synapse的配置信息路径改为绝对路径。默认是repository/deployment/server/synapse-config/default。
<transportReceiver>增加配置节点WSDLEPRPrefix,一共有两个transportReceiver节点一个用于http协议一个用于https协议。都需要修改,分别修改为WebSphere中的地址端口和上下文。修改这个文件里面所有配置jks证书的地方(一共有4处),证书路径换为绝对路径,如:
<transportReceiver name="http" class="org.apache.synapse.transport.nhttp.HttpCoreNIOListener">
<parameter name="port" locked="false">8280</parameter>
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="WSDLEPRPrefix" locked="false">http://192.168.1.200:9081/esb</parameter>
<parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor</parameter>
</transportReceiver>
<transportReceiver name="https" class="org.apache.synapse.transport.nhttp.HttpCoreNIOSSLListener">
<parameter name="port" locked="false">8243</parameter>
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="WSDLEPRPrefix" locked="false">https://192.168.1.200:9444/esb</parameter>
<parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.NHttpGetProcessor</parameter>
<parameter name="keystore" locked="false">
<KeyStore>
<Location>/home/menghui/gzpt/code/wso/wso2esb-4.0.0/repository/resources/security/wso2carbon.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
<KeyPassword>wso2carbon</KeyPassword>
</KeyStore>
</parameter>
<parameter name="truststore" locked="false">
<TrustStore>
<Location>/home/menghui/gzpt/code/wso/wso2esb-4.0.0/repository/resources/security/client-truststore.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
</TrustStore>
</parameter>
supports optional|require or defaults to none -->
</transportReceiver>
修改$CARBON_HOME/repository/conf/user-mgt.xml和registry.xml文件
修改的内容一样,就是把dbConfig的url修改为绝对路径。默认的wso2esb使用h2数据库保存信息,如果你配置了使用MySQL或者ORACLE,那么这步可以不做。
<url>jdbc:h2:/home/menghui/gzpt/code/wso/wso2esb-4.0.0/repository/database/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE</url>
完成以上修改后确认一下wso2esb里面已经部署的代理服务是不是都能找到源,特别是WSDL使用URI方式发布的代理服务,如果源不存在或无法访问,会造成WebSphere起不来。
5、启动应用程序配置websphere的ssl证书
启动刚才在WebShpere中发布的应用程序,然后使用wso2carbon.jks和client-truststore.jks两个证书配置ssl,配置前面发布的应用程序使用新配置的证书。配置方法见:
http://blog.sina.com.cn/s/blog_53c727c30100tuol.html
然后重启websphere。