Ich habe die folgenden zwei REST-URLs in meiner application.properties.Wie wird eine bestimmte REST-URL basierend auf dem maven-Profil erstellt?
Ich möchte eine, aber nicht beide basierend auf dynamische Parameter abrufen, aber nicht sicher, wie. Ich habe versucht, Maven-Profil zu verwenden, aber nicht sicher, wie man das Maven-Profil in Java-Code liest und die URLs darauf basiert.
Bitte führen.
application.properties
rest.uri=http://localhost:8080/hello
mock.rest.uri=http://localhost:9999/hello
RestClient.java
public class HelloWorldClient {
public static void main(String[] args) {
try {
Client client = Client.create();
//getRestUrl() METHOD CALL NEEDS TO BE DYNAMIC
//EITHER MOCK URL OR ACTUAL REST URL SHOULD BE FETCHED HERE
// NOT SURE HOW ???????
WebResource webResource = client.resource(getRestUrl());
ClientResponse response = webResource.accept("text/plain").get(ClientResponse.class);
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println("\nOutput from Server.... " + output);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getRestUrl() throws IOException {
Properties prop = GenericUtils.loadProperties("application.properties");
String restUri = prop.getProperty("rest.uri");
String mockRestUri = prop.getProperty("mock.rest.uri");
System.out.println("restUri = " + restUri);
System.out.println("mockRestUri = " + mockRestUri);
return mockRestUri;
}
}
pom.xml
<profiles>
<profile>
<id>rest-server</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>mock-rest-server</id>
</profile>
</profiles>
die wichtigste Methode
Run können mehrere Versionen Ihrer 'application.properties' Datei haben könnte. Packen Sie je nach Maven-Profil den richtigen in Ihre Anwendung ein. –
Können Sie mich auf eine Dokumentation oder ein Beispiel hinweisen? – user2325154
Warum müssen Sie das überhaupt tun? Platzieren Sie eine Konfigurationsdatei außerhalb der JAR, die diese URL enthält, und der Code würde dann einfach das lesen, was sich in dieser Datei befindet. Sie können diese Datei dann jederzeit bearbeiten und Ihre App neu starten, ohne dass dabei merkwürdige benutzerdefinierte Verpackungen/Profile erforderlich sind. – Tunaki