1. 程式人生 > >Web專案從Tomcat遷移到weblogic 10.3出現的錯誤

Web專案從Tomcat遷移到weblogic 10.3出現的錯誤

第1個問題:

異常描述:VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>

因為建立專案的時候用的是JAVAEE6,所以生成web.xml檔案的時候是這樣的:

  1. <web-app version="3.0"
  2.     xmlns="http://java.sun.com/xml/ns/javaee"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  5.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

 weblogic10.3.6並不支援web-app_3_0.xsd的定義。所以報錯了。

  改為如下就ok了:

<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 12。

第2個問題:

異常描述:

Caused by: weblogic.management.DeploymentException: [HTTP:101170]The servlet default is referenced in servlet-mapping *.js, but not defined in web.xml.

原因:用預設servlet處理靜態資源。

<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>

每個web容器都有一個預設servlet,在tomcat預設servlet的名字是:defalut。而在weblogic是:FileServlet。下面列出各容器的預設servlet的名字

Tomcat, Jetty, JBoss, and GlassFish 預設 Servlet的名字"default" WebLogic 預設 Servlet的名字 "FileServlet" ,WebSphere預設 Servlet的名字 "Simpledefault" 。

將上面的default改成FileServlet就可以了。

第3個問題:

異常描述:

Annotation-specified bean name 'containerTransactionType.Factory' for bean class [com.sun.java.xml.ns.javaee.ContainerTransactionType$Factory] conflicts with existing, non-compatible bean definition of same name and class [com.sun.java.xml.ns.j2Ee.ContainerTransactionType$Factory]

原因:

mvc-dispatcher-servlet.xml裡有這樣一個配置,

<!-- 需要掃描的標註了@Controller的類 -->
    <context:component-scan base-package="com">
        <context:include-filter type="regex"
            expression=".*.action.*" />
            <!-- 這裡排除service,防止事務失效 -->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> 
    </context:component-scan>

我的包名是com.公司名.模組名。由於weblogic的包裡也有以com開頭action結尾的包,spring把它的包也掃描了,並注入容器。出現了同名的bean。所以報錯。

解決方法,   將<context:component-scan base-package="com">中包名加一層, 改成: <context:component-scan base-package="com.公司名">。

第4個問題:

異常描述:

Caused by: java.lang.Throwable: Substituted for missing class org.springframework.beans.factory.BeanCreationException - Error creating bean with name 'ditemAction': Injection of autowired depende
ncies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.jfpal.riskmanage.item.service.IDitemService 

這是在createing 控制器 ‘ditemAction’時出的錯。原因是無法注入屬性com.jfpal.riskmanage.item.service.IDitemService 。程式碼肯定沒問題的,tomcat上執行正常。

經過分析,斷定spring沒掃描com.jfpal.riskmanage.item.service.IDitemService 所在的包。

然後檢視web.xml,發現如下配置

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext*.xml</param-value>
  </context-param>

將其改為

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml,classpath:applicationContext-myBatis.xml</param-value>
  </context-param>

後面那個資料來源的配置。改後部署成功。原因是weblogic和tomcat解析<param-value>有點不一樣。

第5個問題:

訪問專案時出錯,報404,說找不到**/**/dwz.frag.xml。檢視web.xml,沒有配置xml靜態資源的訪問,加上如下配置

    <servlet-mapping>
        <servlet-name>FileServlet</servlet-name>
        <url-pattern>*.xml</url-pattern>
    </servlet-mapping>

至此遷移成功。

相關推薦

Web專案Tomcat遷移weblogic 10.3出現錯誤

第1個問題: 異常描述:VALIDATION PROBLEMS WERE FOUND problem: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-

Java web專案tomcat轉為weblogic環境所遇到的問題

最近公司需要將原本在tomcat上開發的專案部署在weblogic上執行,因為原先對weblogic沒有接觸,不知道tomcat和weblogic的主要區別,只能邊學邊找資料,所以避免不了走了許許多多的彎路。網上的資料可能因為版本、環境的不一致,無法解決問題。

專案tomcat遷移weblogic環境下問題彙總----不斷補充中ing...

1、 JDK和Servlet版本問題 WebLogic 8.1 sp4以前(包括sp4)只支援JDK1.4,建議使用JDK1.4進行編譯程式碼,有時JDK1.5編譯的程式無法執行,由於WebLogic 8.1不支援J2EE1.4,不要使用Servlet2.4和JSP2.0進

IDEA部署web專案tomcat,經常報PermGen space錯誤解決方法

直接更改Idea中tomcat的配置,增加啟動記憶體設定的引數 在tomcat的配置頁面,VM options中新增:-Xms512m -Xmx1200m -XX:MaxPermSize=256m 可以根據本機記憶體情況酌情更改

WebLogic 10.3.6.0 升級反序列化漏洞補丁

成功 wget命令 下載 攻擊 generic 價格 server move 被黑 由於最近比特幣被炒到近乎不可思議的價格,所以網絡上的肉雞都被黑產們一個個培養成了挖礦雞。今兒就聊聊如何進行WebLogic10的反序列化漏洞的升級方法。 1、修改bsu.sh 把內存

關於weblogic 10.3.6.0 的漏洞復現(1)

iter oid sch AD 成功 str context blog env 最近小R 搭建了個weblogic, 因為之前在公司找系統漏洞的時候,發現了這個漏洞,所以為了特地專門搭建了個10.3.6.0版本。 漏洞編號: CVE-2017-10271 漏洞的描述:就是

MyEclipse部署web專案Tomcat出現An internal error occurred during: "Launching on Tomcat 7.x"的問題,或者是出現空指標的現象

如果出現了上述的錯誤按照如下的3個步驟解決: 1、首先關閉MyEclipse工作空間。 2、然後刪除工作空間下的檔案。 “MyEclipse10\workspace.metadata.plugins\org.eclipse.core.runtime.settings、com.gen

Idea建立web專案tomcat部署實戰

一、建立簡單web專案 1、建立一個web project File -> new Project ->選擇project sdk 為1.6(如果沒有sdk的同學請先配置)-> Next create project from template 頁面,不勾選任何選

java web專案tomcat中以除錯模式執行

轉載地址:https://blog.csdn.net/gk_12/article/details/79689702 自己測試環境是: JDK1.8 Eclipse4.5 tomcat 8.5 如果只是將專案部署在tomcat中並不能進行除錯,所以還需要進行配置一下,步驟如下:

Web專案使用Sigar在WebLogic伺服器部署遇到的問題

今天在WebLogic 12c伺服器上部署Web專案時,碰到了一個問題。專案中使用到了"Sigar.jar"監控Window平臺下的cpu使用率、記憶體使用率和硬碟資訊,sigar.jar包依賴"sigar-amd64-winnt.dll"和"sigar-x86-winnt.dll"兩個dl

eclipse部署web專案tomcat 時 無法點選下一步

        在Eclipse中建立了一個Web工程後,需要將該工程部署到Tomcat中進行釋出。有時就會遇到在New Server對話方塊中選擇了Tomcat 7後卻無法單擊“Next”按鈕的問題,如下圖所示:           這時開啟工程目錄下的.metadata\.plugins\org.ecl

WebLogic 10.3.6安裝GFWX補丁

1、檢視基礎環境: (1)檢視JDK版本:# java -version (2)WebLogic安裝目錄:/app/weblogic (3)檢視WebLogic版本: 方法一: # su - weblogic $ cd /app/weblogic/utils/bsu $ ./bsu.sh

Spring Boot+Thymeleaf開發web專案入門到精通實戰教程

也許,正在對著鍵盤敲程式碼中的很多人或者是你,我們可能都知道spring boot怎麼進行介面開發,但是像之前在spring boot + Thymeleaf開發web專案的過程中,會有一點點小問題我們會忽視,​今天我就來講講怎麼實現頁面跳轉,完成一個web專案。我就藉助Th

linux下發布web專案tomcat部署執行流程

1、下載tomcat,並上傳到Linux對應目錄下,解壓tomcat壓縮包。 解壓命令:tar xzvf 壓塑包名稱 2、將你的web專案打成war包上傳到tomcat下的webapps下 3、通過命令進入tomcat下的bin目錄下,執行

eclipse+maven遠端(自動)部署web專案tomcat

eclipse整合maven後可以用maven命令把web專案自動部署到tomcat,具體步驟如下 一、修改tomcat-users.xml配置檔案開啟tomcat管理使用者,配置檔案位置在tomcat目錄/conf下。修改如下圖 二、配置maven的settings.x

Eclipse建立web專案通過Tomcat執行過程中出現的一些問題

使用Eclipse建立jsp web工程時,需要注意幾個方面: Tomcat啟動 首先注意服務是否啟動,如果服務配置的是Tomcat,要確認在Server對話方塊中啟動Tomcat是否成功。如果不成功,則需要再進一步核查Tomcat是否可通過自身的啟動檔案 Startup.bat 啟動成

eclipse 釋出web專案tomcat找不到本地的專案

3) 配置 Modify Faceted Project   點選Further configuration available…,彈出Modify Faceted Project視窗   此處是設定web.xml檔案的路徑,我們輸入src/main/webapp。   Generate web.x

在eclipse中釋出maven的多模組web專案tomcat上及單步debug模組jar

1.在eclipse中釋出maven的多模組web專案到tomcat eclipse和maven及tomcat的部署略去,還有maven的基礎知識和使用在此處略去. 按照如下的步驟操作: 將lib和maven模組生成的jar加入到lib下. 注意:到這步可能有

解決Eclipse EE部署web專案Tomcat webapp目錄下沒有工程檔案的問題

之前本人在進行web應用開發時用的都是 MyEclipse,最近在用 Eclipse EE 進行 web 應用開發時卻發現成功部署後,在Tomcat 的 webapps 目錄下沒有相關的工程檔案,要知道在使用MyEclipse的時候是預設部署到webapps目錄

Maven實現專案構建直接部署Web專案Tomcat

[INFO] --- tomcat7-maven-plugin:2.2:redeploy (default-cli) @ ui --- [INFO] Deploying war to http://172.16.100.177:9098/ui   Uploading: http://172.16.100.