2017-10-26 2 views
1

Was ist mehr für DiscoveryClient erforderlich? Ich versuche registrierte Dienste mit DiscoveryClient zu Eureka zu holen. Das Standalone-Programm funktioniert gut, aber das folgende Code-Snippet soll in eine Webanwendung integriert werden, die auf jboss läuft.Keine berechtigende Bean vom Typ 'org.springframework.cloud.client.discovery.DiscoveryClient' verfügbar

Hier ist der Code - DiscoveryClientController.java

`import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.cloud.client.discovery.DiscoveryClient; 
import org.springframework.stereotype.Controller; 
@Controller 
public class DiscoveryClientController { 

    @Autowired 
    private DiscoveryClient discoveryClient; 


    public DiscoveryClient getClient(){ 

     return discoveryClient; 
    } 
}` 

DiscoveryClientBean.java

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 

@Configuration 
public class DiscoveryClientBean{ 


    @Bean 
    public DiscoveryClientController discoveryClientController() 
    { 
     return new DiscoveryClientController(); 
    } 

} 

pom.xml -

<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>com.test</groupId> 
<artifactId>Discovery</artifactId> 
<version>1.0</version> 
<packaging>jar</packaging> 
<build> 
    <!-- <sourceDirectory>src</sourceDirectory> --> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <warSourceDirectory>WebContent</warSourceDirectory> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 
<properties> 
    <spring.version>4.3.8.RELEASE</spring.version> 

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
    <spring-cloud.version>Dalston.SR3</spring-cloud.version> 
</properties> 
<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.6.RELEASE</version> 
    <relativePath /> 
</parent> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-eureka</artifactId> 
     <exclusions> 
     <exclusion> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     </exclusion> 
     </exclusions> 
     <!-- <version>1.3.4.RELEASE</version> --> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
     <version>1.5.6.RELEASE</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
      </exclusion> 
     </exclusions> 

    </dependency> 


</dependencies> 
<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>${spring-cloud.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

+0

Haben Sie durch die Führung weg zu lesen? https://spring.io/guides/gs/service-registration-and-discovery/ Von der ersten Ansicht aus kann ich sehen, dass hier einige Anmerkungen fehlen, z. "@EnableDiscoveryClient" und "@EnableEurekaServer" – mrkernelpanic

+0

@mrkernelpanic Ein eigenständiges Programm mit der Anmerkung "@SpringBootApplication" funktioniert einwandfrei. Die von Ihnen erwähnten Anmerkungen wurden in anderen Klassen verwendet. Werden sie auch hier benötigt? weil ich bei der Ausführung eines eigenständigen Programms keine solchen Anmerkungen verwendet habe. – Divyanshi

Antwort

1

Die e xception sagt Ihnen, dass Ihnen die Definition der Frühlingsbohne vom Typ org.springframework.cloud.client.discovery.DiscoveryClient fehlt. In diesem speziellen Fall müssen Sie keinen selbst definieren, aber Sie müssen ihn mit der Anmerkung @EnableDiscoveryClient in Ihrer annotierten Klasse @SpringBootApplication aktivieren.

Wenn Sie zusätzliche Informationen benötigen, nehmen Sie bitte einen Moment Service Registration and Discovery

Verwandte Themen