使用 java 代码本地主机端口和缺少路径的领事注册服务

consult register servise using java code localhost port and missing path

我有 java 代码将服务插入我的领事服务,使用 spring-cloud-starter-consul-all 和 java 代码如下:

if (response.getValue().isEmpty()) {

    NewService service = new NewService();
    service.setAddress("serverhere.com");
    service.setPort(8200);
    service.setId("servideId");
    service.setName("serviceName");

    client.agentServiceRegister(service);
}

我还需要添加参数或路径,例如:

http://serverhere.com:8080/parameter1/parameter2. 

不知道在哪里插入参数:/parameter1/parameter2.

我试过添加这段代码:

//HealthCheck
    NewService.Check serviceCheck = new NewService.Check();
    serviceCheck.setHttp(service.getHealthCheck());
    serviceCheck.setInterval(healthCheckInterval);
    serviceCheck.setTimeout(healthCheckTimeout);
    
    //Path
    NewService.Check serviceCheckPath = new NewService.Check();
    serviceCheckPath.setScript("/parameter1/parameter2");
    serviceCheckPath.setInterval(healthCheckInterval);
    
    
    List<Check> serviceCheckList = new ArrayList();
    serviceCheckList.add(serviceCheck);
    serviceCheckList.add(serviceCheckPath);
    
    newService.setChecks(serviceCheckList);
    
    client.agentServiceRegister(newService);

我收到此错误: OperationException(statusCode=400, statusMessage='Bad Request', statusContent='Request decode failed: json: unknown field "Script"')

你能帮我找到合适的字段来保存与服务相关的路径吗? 提前谢谢你。

Consul service definitions 只能包含 IP 和端口信息。该目录没有用于存储 HTTP 路径信息的第一个 class 方法。

您可以使用服务注册的 Meta 字段将此信息存储在 path 密钥中。然后,您需要在应用程序中编写逻辑以使用 HTTP API 执行服务发现,并将元字段中的 IP、端口和路径连接起来以形成完整的 URL.