dubbo 初始化兩次的錯誤 Duplicate application configs
這是錯誤提示:Duplicate application configs: <dubbo:application name="demo-provider" id="demo-provider" /> and <dubbo:application name="demo-provider" id="demo-provider2" />
最近在eclipse上搭建dubbo+spring+mybatis。provider啟動是這樣的。用註釋段啟動沒問題,非註釋段啟動就報這個錯了。
public class DemoProviderTest {
// public static void main(String[] args) throws Exception {
// ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
// new String[] {"META-INF/spring/serviceApplicationContext.xml"});
// context.start();
//
// System.out.println("Hello!");
//
// System.in.read(); // press any key to exit
// context.close();
// }
public static void main(String[] args) throws Exception {
com.alibaba.dubbo.container.Main.main(args);
}
}
在日誌裡有這麼一段,相當於載入了兩次。
Pre-instantiating singletons in @16eabae: defining beans [com.alibaba.dubbo.config.spring.AnnotationBean,demo-provider,com.alibaba.dubbo.config.ConsumerConfig,com.alibaba.dubbo.config.RegistryConfig,dubbo,org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.event.internalEventListenerProcessor,org.springframework.context.event.internalEventListenerFactory,com.alibaba.dubbo.config.spring.AnnotationBean2,demo-provider2,com.alibaba.dubbo.config.ConsumerConfig2,com.alibaba.dubbo.config.RegistryConfig2,dubbo2,
我的pom檔案build段是這樣的。再次說明,是用dubbo的main方法啟動才出現的這個錯誤。
<build>
<resources>
<resource>
<!-- project開頭的變數為maven內建變數
- ${project.build.directory}代表target目錄
-->
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<!-- dubbo的main方法啟動用到的配置檔案最後需要在target/classess/META-INF/spring目錄下生成
- 若配置檔案已在src/main/resources/META-INF/spring目錄下,則可省略targetPath
-->
<resource>
<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>serviceApplicationContext.xml</include>
</includes>
</resource>
</resources>
<!-- 這裡是為了在使用maven-dependency-plugin時,預防maven版本不一致導致的環境衝突 -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- 將專案所需依賴打包到指定位置target/lib -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<type>jar</type>
<includeTypes>jar</includeTypes>
<useUniqueVersions>false</useUniqueVersions>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- 打包jar檔案時,配置manifest檔案,加入lib包的jar依賴 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.alibaba.dubbo.container.Main</mainClass>
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<!-- 在Class-Path中增加當前目錄 -->
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
原因:dubbo相關的xml資源被 了兩次,在這裡。
<resource>
<!-- project開頭的變數為maven內建變數
- ${project.build.directory}代表target目錄
-->
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
然後在serviceApplicationContext.xml是這樣的,注意加粗部分。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<context:property-placeholder location="classpath*:*.properties" ignore-unresolvable="true"/>
<context:component-scan base-package="com.sail.demo.dubbomybatis.service"/>
<import resource="classpath:META-INF/spring/dubbo.xml"/>
<import resource="classpath*:dataAccessContext.xml"/>
</beans>
當dubbo的main方法執行時,會去讀取jar包中的配置檔案,dubbo.xml和serviceApplicationContext.xml分別讀取了一遍。
我這裡是將serviceApplicationContext.xml裡的<import resource="classpath:META-INF/spring/dubbo.xml"/>這段刪除,問題解決。
相關推薦
dubbo 初始化兩次的錯誤 Duplicate application configs
這是錯誤提示:Duplicate application configs: <dubbo:application name="demo-provider" id="demo-provider" /> and <dubbo:application name=
spring context 初始化兩次導致dubbo埠被佔用
背景:一個剛開發完的小專案部署到測試環境,總是部署失敗,直觀的報錯是error日誌中有dubbo埠被佔用。專案為springmvc框架+tomcat。 錯誤日誌為: [0518 19:36:41 354 ERROR] [main] web.context.Context
Tomcat啟動時項目重復加載,導致資源初始化兩次的問題
n) water term clas pps webapps eclips jsb nts 最近在項目開發測試的時候,發現Tomcat啟動時項目重復加載,導致資源初始化兩次的問題 導致該問題的原因: 如下圖:在Eclipse中將Server Locations設置為“Us
Tomcat啟動時項目重復加載,導致資源初始化兩次!
ati 解決 class onf dep alt doc ack div 一、現象: 每次啟動Tomcat 的時候,工程會被加載兩次 二、原因: 在tomcat/conf/server.xml配置虛擬目錄引起,如下配置: 我們在Host標簽裏配置了appBase="w
Android應用安裝完成後開啟應用出現初始化兩次解決方案
啟動介面加上 if (!isTaskRoot()) { finish(); return; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(
【問題記錄】eclipse啟動web專案時,spring會初始化兩次
背景:一個tomcat,一個eclipse,一個SSM框架的web專案。在eclipse中新建tomcat伺服器,預設配置,然後在伺服器配置中將Server Locations改成Use Tomcat
eclipse中tomcat啟動時專案重複載入,導致資源初始化兩次的問題
在eclise中啟動tomcat發現同一個專案被重複載入了兩次,一直很納悶哪裡出了問題,網上大家各種要去修改appBase之類的方法也不起作用,最後偶然間發現是eclipse中tomcat設定的問題,見圖中: 勾上標紅的選項,就OK了!!!
專案部署到tomcat Webapps中後導致 WebApplicationContext 初始化兩次問題
現象: 之前使用 @PostConstruct方法執行了兩次,原以為是包掃描了兩次導致的,後來發現配置都是正確的。通過eclipse控制檯看到日誌中WebApplicationContext 初始化兩次 原因: 釋出的時候是以根路徑訪問的從而導致tomcat 會發布
陣列的初始化兩種方式?初始化常見錯誤
陣列是儲存同一種資料型別多個元素的集合。 a:動態初始化 只指定長度,由系統給出初始化值 格式: * 資料型別[] 陣列名 = new 資料型別[陣列長度]; * int[] arr = new int[5]; b:靜態
WCF中的ServiceHost初始化兩種方式
wcf pre res body BE world typeof OS words 1 代碼方式 using(ServiceHost host=new ServiceHost(typeof(HelloWordService))) { host.AddSe
dubbo應用既當提供者又當消費者java.lang.IllegalStateException: Duplicate application configs
AR def 原因 art ati tee nco tail name 一個dubbo的應用啟動時報錯:java.lang.IllegalStateException: Duplicate application configs。原因如下: 當一個應用既當提供者和消費者時,
python單例模式控制成只初始化一次,常規型的python單例模式在新式類和經典類中的區別。
spa alt let __main__ python2 urn 時間 div 分享 單例模式的寫法非常多,但常規型的單例模式就是這樣寫的,各種代碼可能略有差異,但核心就是要搞清楚類屬性 實例屬性,就很容易寫出來,原理完全一模一樣。 如下: 源碼: class
初始化虛擬機器錯誤 - Error occurred during initialization of VM
文章目錄 1 環境配置資訊 1.1 伺服器配置資訊 1.2 Tomcat啟動引數 2 問題描述 3 問題解決 4 關於vm.overcommit_memory引數的說明 4.1 vm.overcommit
執行SQL報ORA-01810格式程式碼出現兩次錯誤
出現這個錯誤是由於ORACLE對HH和mm這種格式支援的不好。 可以修改成如下格式 yyyy-MM-dd hh24:mi:ss 這種格式出現多少次都不會報錯。 SQL如下: select to_char(to_date(to_char(to_date(to_char(s
SQL安裝服務起不來,報錯TDSSNICLIENT初始化失敗,錯誤0X80092004
TDSSNIClient初始化失敗,錯誤0x80092004,狀態程式碼0x80。原因:無法初始化SSL支援。 TDSSNIClient初始化失敗,錯誤0x80092004,狀態程式碼0x1。原因:初始化因基礎結構錯誤而失敗。由於網路庫中的內部錯誤,無法啟動網路庫。 經過幾天的搜尋
HorizontalScrollView 初始化第一次時使用smoothScrollTo無效的解決辦法
最近使用HorizontalScrollView 來封裝水平滾動佈局時 在初始化後第一次呼叫smoothScrollTo時 沒有發生滾動 通過post時發現可行 在此做為筆記 post(new Runnable() { @Override public void
深入理解java虛擬機器(三)(一個類載入器只初始化一次類物件,不同類載入器可以對同一類物件進行初始化)
package com.ygl; class Final{public static final int x=6/3;//此處x在編譯時能計算出值,是編譯時的常量,則System.out.println(Final.x);直接輸出值,不再執行下面static(前提是fina
sql 更新date欄位報“格式程式碼出現兩次”錯誤解決方法.
原來報錯的語句:update COMPANY_RECORD t set t.valid_date = to_date('2014/11/13 12:00:00','yyyy/MM/dd HH:mm:ss '); 正確的語句:update COMPANY_REC
Java執行時環境初始化時出現錯誤,你可能需要重灌Flash
安裝了Adobe Flash CS4的版本,由於是漢化綠化版,再加之之前一直用慣了flash8.0,很不習慣的是他的操作介面,特別可惡的是經常出現假死狀態。於是放棄這個版本,安裝了CS3的,畢竟8.0版的ActionScript 2.0已經逐漸被拋棄。3.0的已經在很大程度上
分散式任務排程平臺XXL-JOB--原始碼解析三:xxl-job-admin排程中心原始碼解析之初始化兩個Thread工作執行緒
xxl-job-admin初始化工作 1.1 啟動時, 載入applicationcontext-xxl-job-admin.xml, 初始化spring容器 <!-- 這個排程中心,在啟動的時候,會做很多初始化的工作 ,比如:執行器資訊,註冊機器列表等資訊 --