Ответ относится только к ORDS 3.0.9. README описывает:
- ОШИБКА: 25072243 - Исправить регрессию, предотвращающую сопоставление URL-адресов схем с включенным ORDS, если пул шлюза PL / SQL не существует.
без которых я не верю, что это будет работать (не тестировалось). Обратите внимание, что при обновлении ORDS 3.0.6 или более ранней версии в схему БД были внесены изменения, и вам необходимо выполнить обновление.
Это не полный ответ, но это самый близкий ответ, который мне удалось получить. Сначала переименуйте файл ords.war в желаемое redirect_name.war. Это автоматически создаст новый каталог конфигурации для подключения к базе данных, но еще не будет настроен. Варианты: установить redirect_name.war, используя:
java -jar redirect_name.war install simple
или вручную отредактировав файлы конфигурации, чтобы они соответствовали уже имеющимся настройкам ORDS. Найти каталог конфигурации можно двумя способами:
java -jar redirect_name.war configdir
предоставит вам каталог конфигурации, или вы можете проверить его:
.\webapps\redirect_name\WEB-INF\web.xml
с именем параметра при условии, что Tomcat настроен на распаковку WAR-файлов, в противном случае посмотрите сам сжатый WAR-архив.
На этом этапе URL-адрес изменился с этого:
https://server:port/ords/workspace/hr/employees/7369
к этому:
https://server:port/redirect_name/workspace/hr/employees/7369
Следующим шагом является настройка URL-адреса карты, что можно сделать с помощью:
java -jar redirect_name.war mapurl --type base-path --workspace-id hr / apex
или вручную создав файл url-mapping.xml в найденном выше. Если вы создадите файл вручную, он должен выглядеть так:
<?xml version="1.0" encoding="UTF-8"?>
<pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
<pool name="apex" base-path="/" workspace-id="hr" updated="2017-01-01T01:01:01.012Z"/>
</pool-config>
Имя пула «apex» - это имя установленной базы данных по умолчанию. Вы можете проверить, какие имена баз данных были настроены в ORDS, проверив подкаталог / conf /, где при установке по умолчанию вы найдете файл с именем apex_pu.xml, описывающий соединение с базой данных. Если вы хотите подключиться к другой базе данных (подробнее здесь), это может быть сделано с:
java -jar redirect_name.war setup --database ords_db_name
который проведет вас через серию запросов для ввода имени службы или SID. Обратите внимание, что вы должны выбрать 1, когда будет предложено здесь:
Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]
или соединение с базой данных не будет создано. Чтобы убедиться в успехе, проверьте расположение / conf и найдите ords_db_name_pu.xml. Обратите внимание, что ords_db_name - это просто псевдоним имени подключения к базе данных, используемый ORDS, он не обязательно должен быть фактическим SID или именем службы.
Эти шаги приведут URL-адрес вниз с промежуточного шага:
https://server:port/redirect_name/workspace/hr/employees/7369
к этому:
https://server:port/redirect_name/workspace/employees/7369
параметр url-mapping.xml / mapurl с / удалил необходимость в любом имени. В качестве альтернативы можно было использовать эту команду:
java -jar redirect_name.war mapurl --type base-path --workspace-id hr /something_here apex
давая этот URL:
https://server:port/redirect_name/workspace/something_here/employees/7369
Не тестировалось
Переименование ords.war в ROOT.war теоретически устраняет необходимость наличия "redirect_name" в URL-адресе, но я не был готов иметь ORDS в местоположении ROOT.
person
Andrew
schedule
09.06.2017