好的,我有sts4和构建spring引导应用程序。我想要一个处理的图形用户界面使用vaadin和它的工作良好。我有另一个选择activemq主题并创建到第一个主题的帖子。如果我使用postman来做文章,那么在第一个应用程序的rest界面上就可以正常工作了。但是,当我运行第二个,检测到一个主题,它试图发布到第一个apprest接口时,我得到。。。
org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 : [<!doctype html><html lang="en"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-colo... (6083 bytes)]
进一步的测试表明,它之所以抱怨是因为它与第一个端口在同一个端口(8080)上侦听。
在我设置的第一个应用程序的application.properties中
server.port=${PORT:8080}
vaadin.compatibilityMode = false
logging.level.org.atmosphere = warn
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.jms.pub-sub-domain=true
在我设置的第二个应用程序中
server.port=${PORT:8081}
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
spring.jms.pub-sub-domain=true
active-mq.topic=personQBE
试图发布的有问题的代码是。。。
public void postResponses(Person person) {
System.out.println("postResponses(Person person)");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.add("Accept", MediaType.APPLICATION_JSON.toString()); //Optional in case server sends back JSON data
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("firstName", person.getFirstName());
map.add("lastName", person.getLastName());
map.add("alias", person.getAlias());
map.add("dataSource", "BI");
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(map, headers);
ResponseEntity<String> response = null;
try {
response = restTemplate.exchange("http://localhost:8080/person/add",
HttpMethod.POST,
entity,
String.class);
} catch (RestClientException e) {
// TODO Log.error later
e.printStackTrace();
}
System.out.println("response:" + response);
}
我已经阅读了博客文章microservices with spring,但不确定是否需要这样做来解决我的问题,接下来,第二个应用程序将成为代理从外部api获取数据的模板,每当第一个应用程序发布该主题时,因此如果第二个应用程序在某个地方单独运行,端口争用将不会成为问题。
1条答案
按热度按时间0ejtzxu11#
为使用随机端口号运行应用程序添加以下值。
希望您已配置
Eureka
以及Zuul
.