Методы (или функции) можно назвать на объекте, которые не имеют типа, с которым они были разработаны для работы. Здорово назвать собственные (быстрые) методы на пользовательских объектах.
var listNodes = document.getElementsByTagName('a');
listNodes.sort(function(a, b){ ... });
Этот код отказывает, потому что listNodes
не Array
Array.prototype.sort.apply(listNodes, [function(a, b){ ... }]);
Этот код работы, потому что listNodes
определяет достаточно подобных массиву свойств (длина, [] оператор), чтобы использоваться sort()
.
Это проблема с упаковкой. Чтобы решить эту проблему, дважды упакуйте WAR, каждый с определенным WEB-INF / weblogic.xml
.
Для первой WAR:
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app>
<context-root>my-context-1</context-root>
</weblogic-web-app>
Для второй WAR:
<?xml version='1.0' encoding='UTF-8'?>
<weblogic-web-app>
<context-root>my-context-2</context-root>
</weblogic-web-app>
Это позволит вам использовать стандартные инструменты развертывания. Я не рекомендую устанавливать ваше приложение как общую библиотеку.
Если вам это действительно нужно, я рекомендую сделать ваше приложение общей библиотекой и создать только новый файл web.xml для изменения корневого контекста для двух развертываний.
Таким образом, вы не будете дублировать весь файл войны, и вы все равно сможете настроить их индивидуально.
Предполагая, что у вас есть обратный прокси-сервер Apache перед сервером приложений, вы можете использовать MOD_REWRITE для изменения корня контекста на лету на стороне сервера (прозрачный для клиента).
Например: добавление IINTructions ниже на httpd.conf вернет содержимое 2.html, когда клиент звонит 1.html:
RewriteEngine on
RewriteRule ^/1.html$ /2.html
. Внимательно, вы можете сделать очевидный перевод, чтобы перевести второй корневой контекстной корневой. Отказ