环境:
Weblogic 10.3
Tuscany 2.0 最新Snapshot (经测试1.5 版和 2.0M3都不行)
说明:
近来需要把基于Tuscany开发的组件发布到weblogic 10.3上跑,但发现官网提供的方法行不通,weblogic会报错,看来官网的方法只适合于 weblogic 9.2。自己摸索了一套方法来解决,但在这里先说明,这并不是最终可靠的解决方案,只是一个临时方案而已 。
思路:
weblogic 10.3把应用发布之后,会强制把工作目录设置到类似下边这样的目录下,然后sca在启动时就因为找不到相关的sca-contribution.xml和composite文件而初始化失败。在weblogic 9.2时可按官网介绍的方法通过设置一个weblogic.xml强制sca的classloader更高优先级,但10.3时就行不通了。解决方案就是想办法让tuscany的过滤器找到这些文件就行了。
解决方案一(目录发布):
1)按普通的思路进行开发,可在tomcat下调试通过即可。(这步需要注意的是WEB-INF/lib目录下需要放置相关Tuscany库文件,这些文件可从官方的tomcat集成包 中的tuscany-lib目录中提取,有这些库文件在weblogic下才可以运行)
2)按weblogic的要求建立发布目录:
root
--META-INF/application.xml
--test (这个目录放程序文件,即原来在war包里的文件,比如WEB-INF目录之类,注意不要按官网介绍的方法去建一个weblogic.xml )
application.xml示例:
3)在weblogic上发布,这时刚才提到的war目录(对,就是很长的那个目录)就出现了。
4)把原本放在META-INF目录下的sca-contribution.xml和composite文件移到第3步生成的war目录。
5)重启weblogic或重启第3步所发布的应用。