重大改版
 鱼翔空 2015-09-12 web服务器|   0 482 
文章评分 2 次,平均分 5.0

在tomcat上跑的好好的项目到weblogic上问题多多,解决的原则是尽量从项目入手解决,减少修改weblogic的配置文件。

一)引入的jar包版本不对

项目部署到weblogic上优先使用的是weblogic自带的jar包,tomcat部署的项目优先使用的是项目自身的jar包。

有些jar包可以跨版本使用,有些jar包因为打包出来的时候使用jdk版本问题导致对应的jar在低版本的jdk上无法使用,有些jar因为版本变更做了重构,造成无法兼容

解决方案:

1)先确定要部署的项目的weblogic版本,找出对应weblogic版本下使用的jar是哪个版本的,对应的版本尽量向weblogic靠齐,特别是使用jax-ws发布webservice时,由于weblogic自身的优化,版本不对时很容易出现问题

2)开发项目时使用weblogic.jar

 在weblogic 9.2以下的版本都可以从server/lib目录下找到weblogic.jar

 welogic 10版本以上就不能使用weblogic.jar了,需要通过命令生成

cd  E:\javaserver\Middleware\wlserver_10.3\server\lib\server\lib  --自己server目录
java -jar E:\javaserver\Middleware\modules\com.bea.core.jarbuilder_1.7.0.0.jar

 以上命令会在server/lib目录下生成wlfullclient.jar,该jar就是我们要引用的weblogic.jar


二)配置文件配置差异

1)web.xml中配置文件路径时:

  使用classpath来配置文件路径,不要使用文件路径的来配置

2)web-app中servlet版本问题

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  weblogic 10 不支持servlet 3 

3)命名空间的不同 

使在weblogic解析jsp是如果URI是一http打头的话,他是直接上网查询的,不是读取你的注册信息

tomcat 中
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> 
weblogic中
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
tomcat中
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> 
weblogic中
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c"%>

4)web.xml中配置默认拦截器的时候

 <!--配置 静态资源不走springmvc  -->
    <!-- 当springmvc 配置的url-pattern为/时,所有的请求资源都会被springmvc处理
             静态资源不需要springmvc处理,写在DispatcherServlet的前面, 让 defaultServlet先拦截,这样就不会进入Spring了
             需要在springmvc-context.xml中写上<mvc:default-servlet-handler />  
        Tomcat, Jetty, JBoss, and GlassFish  默认 Servlet的名字 - "default"
	    Google App Engine 默认 Servlet的名字 - "_ah_default"
		Resin 默认 Servlet的名字 - "resin-file"
		WebLogic 默认 Servlet的名字  - "FileServlet"
		WebSphere  默认 Servlet的名字 - "SimpleFileServlet" 
  
   -->
  <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>
  <servlet-mapping>

三)jdk版本问题

  开发时就将jdk版本协调一致,如果因为迁移环境,由低版本升级为高版本,特别是jdk1.5升级到jdk1.6的时候,问题多多,最多还是webservice上。


四)增加weblogic.xml优先使用工程jar包

<?xml version="1.0" encoding="UTF-8"?>  
<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://java.sun.com/xml/ns/javaee  
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd 
http://xmlns.oracle.com/weblogic/weblogic-web-app  
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd"> 
    <wls:weblogic-version>10.3.6</wls:weblogic-version>
    <wls:context-root>/platform</wls:context-root>
    <wls:container-descriptor>
        <!--  prefer-web-inf-classes 和prefer-application-packages 不能共存
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
         -->
        <wls:prefer-application-packages>
	        <wls:package-name>antlr.*</wls:package-name>
            <wls:package-name>javax.persistence.*</wls:package-name>
            <wls:package-name>org.apache.xerces.*</wls:package-name>
	    <wls:package-name>org.apache.xalan.*</wls:package-name>
	    <wls:package-name>org.apache.commons.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>org.hibernate.*</wls:package-name>
            <wls:package-name>org.stringtemplate.*</wls:package-name>
            <wls:package-name>org.antlr.*</wls:package-name>
            <wls:package-name>javax.jws.*</wls:package-name>
            <wls:package-name>com.sun.xml.ws.*</wls:package-name>
            <wls:package-name>javax.jws.*</wls:package-name>
            <wls:package-name>org.jvnet.jax_ws_commons.*</wls:package-name>
            <wls:package-name>com.bea.xbean.*</wls:package-name>  
            <wls:package-name>com.bea.xml.*</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:weblogic-web-app>


 

除特别注明外,本站所有文章均为我要编程原创,转载请注明出处来自http://5ycode.com/article/478.html

关于
该用户很懒!
切换注册

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享