Шаблон URL, который вы описали («serverA: 1100, serverB: 1100, serverC: 1100»), уже принят некоторыми реализациями InitialContext серверов приложений, но используется для определения LOAD BALANCE для достижения начальных контекстов в кластере!
Например, если вы используете этот URL-адрес в Weblogic Server, он будет использовать алгоритм циклического перебора для получения доступного начального контекста с серверов в списке.Он не будет использовать логику, описанную вами во время поиска, но только для подключения к начальному контексту.
Одна альтернатива - использование внешних провайдеров JNDI, то есть метод, при котором вы отображаете внешние серверы и компоненты JNDI.к централизованному, и затем вы можете использовать согласованную схему именования в именах ссылок (для поиска некоторой информации обратитесь к Google "зарубежный поставщик JNDI").Weblogic также поддерживает эту функцию, как и другие серверы.
Шаблон локатора службы также можно использовать для выполнения этой логики на уровне приложений.
В спецификации не определены правила для provider_url.просто говорит, что использование этого свойства определяется исходной реализацией контекста.Так что это правдоподобно, но не будет интуитивно понятным, если оно уже используется для определения балансировки нагрузки.Другая проблема заключается в том, что спецификация Java EE не гарантирует ничего о именах привязки JNDI для компонентов EJB, поэтому плохая реализация JNDI не должна позволять вам определять имена JNDI.
Я думаю, что лучшим решением является использование стороннего сопоставления JNDI или локатора служб.