java应用发布weblogic与tomcat需注意事项

648 阅读1分钟

常见问题

1.常用的springboot框架兼容性问题:

  • tomcat兼容性是比较好的
  • weblogic需要处理一些列兼容性问题,可通过weblogic.xml来处理兼容

2.对于springboot的兼容有版本对应,servlet api的版本支持问题

3.代码中如果存在长事物提交,则需要注意

  • weblogic有xa事物,即两阶段提交,如果事物提交时间过长,则会由weblogic的xa机制发生事物回滚,这时候就会出现一些错误,提示事物已被回滚等。

针对于问题1,可参考weblogic.xml配置如下:

<wls:weblogic-web-app
        xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
		http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.apache.commons.*</wls:package-name>
            <wls:package-name>antlr.*</wls:package-name>
            <wls:package-name>org.hibernate.*</wls:package-name>
            <wls:package-name>javax.persistence.*</wls:package-name>
    		<wls:package-name>javax.validation.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>org.apache.xmlbeans.*</wls:package-name>
            <wls:package-name>org.hibernate.validator.*</wls:package-name>
            <wls:package-name>org.joda.*</wls:package-name>
            <wls:package-name>org.objectweb.asm.*</wls:package-name>
            <!--<wls:package-name>com.sun.xml.*</wls:package-name>-->
            <wls:package-name>javassist</wls:package-name>
            <wls:package-name>net.sf.cglib.*</wls:package-name>
            <wls:package-name>com.google.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    <wls:charset-params>
    	<wls:input-charset>
    		<wls:resource-path>/*</wls:resource-path>
    		<wls:java-charset-name>UTF-8</wls:java-charset-name>
    	</wls:input-charset>
    </wls:charset-params>
    <wls:jsp-descriptor>
    	<wls:encoding>UTF-8</wls:encoding>
    </wls:jsp-descriptor>
    <wls:session-descriptor>
        <wls:timeout-secs>600</wls:timeout-secs>
    </wls:session-descriptor>
</wls:weblogic-web-app>

其中,package-name标签中的表示,如果与weblogic的lib库中发生冲突,则优先加载应用lib中此包类