Spring cloud 加入消息总线后,不能访问controller

Easy_____ 2017-09-08 06:06:47
今天在尝试做spring cloud config 的配置的时候,发生了一个问题,当我加入 spring-cloud-starter-bus-amqp 的依赖的时候,controller 就无法访问.

以下是我的配置
pom 文件

<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.jxy</groupId>
<artifactId>testClient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<finalName>
config_client
</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.jxy.ConfigClient</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!--基于Springboot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath />
</parent>
<properties>
<!--设置字符编码及java版本 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 添加此依赖 并开启RefreshScope 注解 ,可达到不重启服务,立即刷新配置的功能 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<optional>true</optional>
</dependency>
<!-- 消息总线 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<!-- eureka 客户端 -->
<!-- <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> -->
<!-- 开发热部署 -->
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency> -->
</dependencies>



<!--依赖管理,用于管理spring-cloud的依赖,其中Camden.SR3是版本号 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>



bootstrap.properties 配置

spring.cloud.config.name=ch
spring.cloud.config.profile=test
spring.cloud.config.label=master
spring.cloud.config.uri=http://192.168.2.170:1000/
#rabbitmq config
spring.rabbitmq.host=192.168.2.170
spring.rabbitmq.port=5672
spring.rabbitmq.username=test
spring.rabbitmq.password=test
eureka.client.serviceUrl.defaultZone=http://192.168.2.170:3000/eureka/
spring.application.name=config-client
server.port=2001




spirng cloud 启动的主文件

package testClient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class Test {
public static void main(String[] args) {
SpringApplication.run(Test.class, args);
}

@RequestMapping(value = "/test")
public String test() {
return "OK";
}
}





如果去除 这个依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>


,就能通过 http://localhost:2001/test 访问, 由于需要通过这个做消息总线,所以是不能去除的,求各位大神给看看是什么问题?
...全文
333 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lei911gang 2017-11-08
  • 打赏
  • 举报
回复
我最近也遇到了这个问题,请问楼主有什么好的解决方案吗?
Easy_____ 2017-09-11
  • 打赏
  • 举报
回复
经过各种尝试,都没有能够解决.最后猜想可能是由于引入不同版本的依赖,造成jar冲突一类的问题造成的.遂删除了maven仓库中所有的包,重新编译后运行项目,正常访问. 如果有更好的解决办法也可以告知一下.

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧