gaohuanjie commented on issue #8213:
URL: https://github.com/apache/dubbo/issues/8213#issuecomment-874491130


   > > Dubbo 
3.0.0中使用xml配置dubbo.application.name和dubbo.registry.address无效,只有在properties中配置才有效!
   > 
   > Hi, I have test your description, but in my case, it seems well use xml to 
config application name and registry address. How did you use it, can you 
describe it detaily, thanks.
   
   pom.xml文件:
   `<?xml version="1.0" encoding="UTF-8"?>
   
   <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
       <modelVersion>4.0.0</modelVersion>
   
       <groupId>org.example</groupId>
       <artifactId>provider</artifactId>
       <version>1.0-SNAPSHOT</version>
   
       <name>provider</name>
       <!-- FIXME change it to the project's website -->
       <url>http://www.example.com</url>
   
       <properties>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           <maven.compiler.source>1.7</maven.compiler.source>
           <maven.compiler.target>1.7</maven.compiler.target>
       </properties>
   
       <dependencies>
           <dependency>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-simple</artifactId>
               <version>1.6.6</version>
           </dependency>
   
           <!-- 引入dubbo依赖 -->
           <dependency>
               <groupId>org.apache.dubbo</groupId>
               <artifactId>dubbo</artifactId>
               <version>3.0.0</version>
           </dependency>
   
           <dependency>
               <groupId>org.apache.dubbo</groupId>
               <artifactId>dubbo-dependencies-zookeeper</artifactId>
               <version>3.0.0</version>
               <type>pom</type>
               <exclusions>
                   <exclusion>
                       <groupId>org.slf4j</groupId>
                       <artifactId>slf4j-log4j12</artifactId>
                   </exclusion>
                   <exclusion>
                       <groupId>org.apache.zookeeper</groupId>
                       <artifactId>zookeeper</artifactId>
                   </exclusion>
               </exclusions>
           </dependency>
   
           <dependency>
               <groupId>org.apache.zookeeper</groupId>
               <artifactId>zookeeper</artifactId>
               <version>3.6.3</version>
               <exclusions>
                   <exclusion>
                       <groupId>org.slf4j</groupId>
                       <artifactId>slf4j-log4j12</artifactId>
                   </exclusion>
               </exclusions>
           </dependency>
       </dependencies>
   
       <build>
           <pluginManagement><!-- lock down plugins versions to avoid using 
Maven defaults (may be moved to parent pom) -->
               <plugins>
                   <!-- clean lifecycle, see 
https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle 
-->
                   <plugin>
                       <artifactId>maven-clean-plugin</artifactId>
                       <version>3.1.0</version>
                   </plugin>
                   <!-- default lifecycle, jar packaging: see 
https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging
 -->
                   <plugin>
                       <artifactId>maven-resources-plugin</artifactId>
                       <version>3.0.2</version>
                   </plugin>
                   <plugin>
                       <artifactId>maven-compiler-plugin</artifactId>
                       <version>3.8.0</version>
                   </plugin>
                   <plugin>
                       <artifactId>maven-surefire-plugin</artifactId>
                       <version>2.22.1</version>
                   </plugin>
                   <plugin>
                       <artifactId>maven-jar-plugin</artifactId>
                       <version>3.0.2</version>
                   </plugin>
                   <plugin>
                       <artifactId>maven-install-plugin</artifactId>
                       <version>2.5.2</version>
                   </plugin>
                   <plugin>
                       <artifactId>maven-deploy-plugin</artifactId>
                       <version>2.8.2</version>
                   </plugin>
                   <!-- site lifecycle, see 
https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle 
-->
                   <plugin>
                       <artifactId>maven-site-plugin</artifactId>
                       <version>3.7.1</version>
                   </plugin>
                   <plugin>
                       
<artifactId>maven-project-info-reports-plugin</artifactId>
                       <version>3.0.0</version>
                   </plugin>
               </plugins>
           </pluginManagement>
       </build>
   </project>
   `
   application.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:dubbo="http://dubbo.apache.org/schema/dubbo";
          xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
                http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd";>
   
        <!--配置应用名-->
       <dubbo:application name="service-provider"/>
       <!--配置注册中心-->
       <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
       <!--使用dubbo协议,将服务暴露在20880端口  -->
       <dubbo:protocol name="dubbo" port="20880"/>
       <bean id="userService" class="com.jd.service.UserService"></bean>
       <!-- 指定需要暴露的服务 -->
       <dubbo:service interface="com.jd.service.IUserService" 
ref="userService"/>
   </beans>`
   ServiceProvider.java:
   `package com.jd.test;
   
   import com.jd.service.IUserService;
   import org.springframework.context.support.ClassPathXmlApplicationContext;
   
   import java.io.IOException;
   
   public class ServiceProvider {
   
       public static void main(String[] args) {
           ClassPathXmlApplicationContext context = new 
ClassPathXmlApplicationContext("application.xml");
           IUserService userService = context.getBean(IUserService.class);
           System.out.println(userService);
           try {
               System.in.read();
           } catch (IOException e) {
               e.printStackTrace();
           }
       }
   }`
   启动ZooKeeper服务器—>运行ServiceProvider.java,出现如下异常:
   `[INFO ]-[2021-07-06 14:16:06] 
-org.apache.dubbo.config.bootstrap.DubboBootstrap.checkDefaultAndValidateConfigs(DubboBootstrap.java:618)
 - [DUBBO] Ignore invalid config: <dubbo:application protocol="dubbo" 
hostname="Timmy" />, dubbo version: 3.0.0, current host: 10.10.13.156
   [INFO ]-[2021-07-06 14:16:06] 
-org.apache.dubbo.config.DubboShutdownHook.run(DubboShutdownHook.java:61) - 
[DUBBO] Run shutdown hook now., dubbo version: 3.0.0, current host: 10.10.13.156
   Exception in thread "main" java.lang.IllegalStateException: Default config 
not found for ApplicationConfig
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.checkDefaultAndValidateConfigs(DubboBootstrap.java:633)
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.checkGlobalConfigs(DubboBootstrap.java:583)
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.initialize(DubboBootstrap.java:556)
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:1085)
        at 
org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onContextRefreshedEvent(DubboBootstrapApplicationListener.java:70)
        at 
org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onApplicationContextEvent(DubboBootstrapApplicationListener.java:63)
        at 
com.alibaba.spring.context.OnceApplicationContextEventListener.onApplicationEvent(OnceApplicationContextEventListener.java:52)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
        at com.jd.test.ServiceProvider.main(ServiceProvider.java:11)
   2568 [SpringContextShutdownHook] WARN 
org.springframework.context.support.ClassPathXmlApplicationContext - Exception 
thrown from ApplicationListener handling ContextClosedEvent
   java.lang.RuntimeException: java.lang.IllegalStateException: Dubbo config 
was cleaned prematurely
        at 
org.apache.dubbo.common.function.ThrowableAction.execute(ThrowableAction.java:48)
        at 
org.apache.dubbo.common.lang.ShutdownHookCallbacks.lambda$callback$0(ShutdownHookCallbacks.java:70)
        at java.base/java.lang.Iterable.forEach(Iterable.java:75)
        at 
org.apache.dubbo.common.lang.ShutdownHookCallbacks.callback(ShutdownHookCallbacks.java:70)
        at 
org.apache.dubbo.config.DubboShutdownHook.callback(DubboShutdownHook.java:77)
        at 
org.apache.dubbo.config.DubboShutdownHook.run(DubboShutdownHook.java:64)
        at 
org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onContextClosedEvent(DubboBootstrapApplicationListener.java:74)
        at 
org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onApplicationContextEvent(DubboBootstrapApplicationListener.java:65)
        at 
com.alibaba.spring.context.OnceApplicationContextEventListener.onApplicationEvent(OnceApplicationContextEventListener.java:52)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
        at 
org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1013)
        at 
org.springframework.context.support.AbstractApplicationContext$1.run(AbstractApplicationContext.java:949)
   Caused by: java.lang.IllegalStateException: Dubbo config was cleaned 
prematurely
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.checkConfigState(DubboBootstrap.java:1481)
        at 
org.apache.dubbo.config.bootstrap.DubboBootstrap.destroy(DubboBootstrap.java:1448)
        at 
org.apache.dubbo.common.function.ThrowableAction.execute(ThrowableAction.java:46)
        ... 15 more
   2571 [SpringContextShutdownHook] INFO 
org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor
 - class 
org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor
 was destroying!
   [INFO ]-[2021-07-06 14:16:06] 
-org.apache.dubbo.registry.support.AbstractRegistryFactory.destroyAll(AbstractRegistryFactory.java:94)
 - [DUBBO] Close all registries [], dubbo version: 3.0.0, current host: 
10.10.13.156
   [ERROR]-[2021-07-06 14:16:06] 
-org.apache.dubbo.config.bootstrap.DubboBootstrap.checkConfigState(DubboBootstrap.java:1480)
 - [DUBBO] Dubbo config was cleaned prematurely, dubbo version: 3.0.0, current 
host: 10.10.13.156
   `


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to