直接打war包,在本地的weblogic部署没有问题,但是部署到服务器的weblogic始终会报错,noSuchMethod error,在web-info下加上weblogic.xml,设置优先加载我们项目自己的jar包,就不会去先加载weblogic的jar包,而出现问题。
weblogic.xml如下:
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app xmlns="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.0/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
ps:
weblogic中 排除不通过servlet中转的关键字是FileServlet
tomcat中 default
---------------------------------
weblogic
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FileServlet</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
tomcat:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
当然觉得每次改的麻烦,可以修改tomcat的配置文件 路径为:tomcat根目录/conf/web.xml 搜索default,里面会有两个,分别定义在<servlet></servlet>中和<servlet-mapping></servlet-mapping>中,将default改成FileServlet,这样就可以同时让两个web容器都能运行。
使用log4j在weblogic下会报错,因此在将tomcat项目部署到weblogic时,我会将web.xml中的log4j配置注释掉