У меня есть два приложения для гризли. Я хотел бы работать бок о бок на разных URL-адресах на одном сервере. Когда я меняю свой url от localhost
до api.url.local
для локальной отладки, он выбрасывает java.nio.channels.UnresolvedAddressException
. Есть ли что-то, что мне нужно сделать, чтобы java распознал другой URL (т. Е. - изменить файл hosts)? Или я иду в неправильном направлении?Как развернуть по определенному URL-адресу
Я сейчас в Windows, но буду развертываться в Linux. (Если бы это было до меня, я бы запустить Linux)
public class Main {
public static final URI BASE_URI = getBaseURI();
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost/").port(9998).build();
}
protected static HttpServer startServer() throws IOException {
ResourceConfig rc = new PackagesResourceConfig("com.my.package.api.resources");
rc.getFeatures()
.put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
return GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
}
public static void main(String[] args) throws IOException {
AnnotationConfigApplicationContext annotationCtx = new AnnotationConfigApplicationContext(Config.class);
HttpServer httpServer = startServer();
System.out.println(String.format("Jersey app started with WADL available at " + "%sapplication.wadl\nHit enter to stop it...", BASE_URI, BASE_URI));
System.in.read();
httpServer.stop();
}
}
Вы рассматривали использование разных портов (TCP-портов) для этих приложений? Насколько я понимаю, эти 2 приложения будут запускаться на отдельных экземплярах JVM, верно? – alexey
Они будут похожи. Я рассматривал порты, но мне интересно, если это необходимо. Можно ли просто развернуть до 2 разных URL-адресов, поэтому JVM отобразит URL-адрес приложения, которое запущено? – Webnet
Если вы хотите использовать один порт, вам нужно предоставить экземпляр HttpServer для обоих приложений. Как выглядят эти приложения? – alexey