原 薦 關於dubbo2.6.3之後無法執行在tomcat的問題,看這裡。
關於dubbo2.6.3之後無法執行在tomcat的問題,看這裡。
頂
原
薦
字數 398
閱讀 90
收藏 0
jboot Dubbo" rel="nofollow,noindex" target="_blank">Dubbo Tomcat" rel="nofollow,noindex" target="_blank">Tomcat
最近由於 jboot 升級了dubbo,導致很多使用者無法使用 jboot 在 tomcat 正常執行,會報找不到類會出現如下的問題:
org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660)
出現這個錯誤的原因並不是 jboot 去依賴或使用了spring的相關功能,而是由於在tomcat環境下,由於servlet 3.0 會去自動載入依賴所有 jar包的 web-fragment.xml。 這是 servlet 3.0 的標準。
從 dubbo 2.6.3 之後,dubbo.jar 內建了 web-fragment.xml
, web-fragment.xml
又去載入 org.springframework.web.context.ContextLoaderListener 進行 dubbo 內部的初始化過程,但是在 jboot 引入dubbo的時候,已經對spring 體系進行了排除,因此 tomcat 會出現如上的錯誤。
如何解決呢?
1、方案1、我已經向 dubbo 官方提出 issues 並給出解決方案 ,地址: https://github.com/apache/incubator-dubbo/issues/2570 ,這個需要等到官方的解決方案 或者 態度。 2、方案2、在自己的專案裡,建立一個叫 org.springframework.web.context.ContextLoaderListener
實現介面 javax.servlet.ServletContextListener
, 不需要走任何的實現。例如: https://gitee.com/fuhai/jpress/blob/master/starter-tomcat/src/main/java/org/springframework/web/context/ContextLoaderListener.java 就不會再出現這樣的錯誤。 3、方案3、若dubbo官方不解決這個問題,jboot可能考慮內建 org.springframework.web.context.ContextLoaderListener
這個類,做一個空的實現。
© 著作權歸作者所有
共有人打賞支援
相關文章 最新文章
注:cas4.0.x+Tomcat7+Jdk7+redis3.0 CAS中的票據預設是儲存在TicketRegistry中的,若是想要實現CAS服務端的叢集,首先要做的是將票據共享到快取中。 1.實現AbstractDistributedTicketRegist...
戰五渣
2016/10/15
129
1
很多人都使用tomcat來作為java web專案的伺服器,特別是在開發階段,選擇的人更多。本文所說的問題針對tomcat的開發環境,在正式環境中不會出現這個問題。 前段時間,在進行專案執行的時候出...
阿信sxq
2015/08/01
0
8
一、前言 怎樣把已經開發的spring cloud 專案進行打包部署,其實過程和spring boot 的是一樣的。經過摸索之後,才發現其實spring cloud 的每個Project 可以直接打成jar包執行,因為裡面自帶了...
上善若水
2017/09/05
0
0
本文的讀者需要擁有一些Maven基礎知識和實踐,如果沒有,請直接繞過或者先看一些關於Maven教程,比如Juven翻譯的《Maven權威指南》,google一下便知。 開門見山,首先丟擲一個問題(如果你對...
hyper0x
2012/02/27
0
0
我最近做專案出現了些問題,其中一個就是上傳圖片到伺服器,成功顯示出來了。但是到了後面過了段時間發現圖片無法顯示了,到tomcat的webapps目錄裡看看,專案前段時間上傳的圖片不見了。這是...
蠟筆小小小新
2015/09/22
167
0
沒有更多內容
載入失敗,請重新整理頁面
載入更多1>str = 'sed -i "s/include virtual=\"\/_navigation\/header_meta.html\"/include virtual=\"\/zt\/_navigation\/header_meta.html\"/g" ' + uri_path2>str = 'sed -i "s/include vir......
坦途abc
14分鐘前
1
0
問題描述:在爬取資料之後向遠端資料庫存相關資料時,出現該錯誤。 暫時解決方案:發現每次爬取較大量資料進行儲存的時候會出現這種錯誤,而分批量爬取資料,然後再進行儲存就不會出現這個問...
fang_faye
17分鐘前
1
0
1、php安裝的時有兩種方式: (1):php作為apapche的模組形式存在,需要用apxs指定apapche位置,並且用apxs來自動的載入模組;需要結合apapche使用(處理動態請求); (2):php作為一個獨立的服務...
芬野de部落格
17分鐘前
1
0
ElasticSearch的版本是elasticsearch-6.3.1 mysql的資料是5.7 logstash版本是6.3.1 ElasticSearch的外掛elasticsearch-head-master ,現在加壓好了,直接放在ElasticSearch目錄下面就好了,這...
rechardchensir
18分鐘前
2
0

沒有更多內容
載入失敗,請重新整理頁面
載入更多