Использование веб-компонентов в jsps

Я пытался улучшить «старое» приложение, использующее простые jsps, с некоторыми веб-компонентами, но оно просто не работает. Это вообще работает или мне нужно как-то по-другому включать код javascript веб-компонента?

Приложение работает на Payara 5.192 с JEE7.

пример.jsp

<head>
   <script type="module" src="<%=Globals.getProperty("DIR_JSP")%>/javascript/node_modules/my-web-component/master-detail.js" /> 
</head>

<body>
    <% funny inline java code %>
    <master-detail detailsWidth="90">My content to be shown in the details view<master-detail>
</body>

person Andreas Bauer    schedule 09.01.2020    source источник
comment
Это может означать только то, что customElements.define в вашем my-detail.js либо не выполняется, либо неверно. Сначала проверьте, загружен ли этот файл в браузере вообще.   -  person Danny '365CSI' Engelman    schedule 10.01.2020


Ответы (1)


Подсказка «проверьте, загружен ли файл в браузере» была хорошей.

Проблема была связана не с самим настраиваемым элементом, а с моей настройкой. Я пробовал это на своем локальном компьютере, поэтому имейте в виду, что следующее объяснение относится только к локальной, а не производственной среде.

Я развернул свой javascript и соответствующие зависимости непосредственно в папке webapps приложения на Payara. Пользовательский элемент и соответствующие файлы javascript зависимостей, которые загружаются при вызове страницы из Payara, i.d. Payara получила 120 запросов, которые не смогла обработать. Так что на самом деле я провел DoS-атаку на свою локальную Payara. В производственной настройке я бы развернул файлы javascript в nginx, например.

После того, как я увеличил потоки для http-прослушивателя, а также отключил https (поскольку это вызвало высокие всплески процессора), на моей локальной машине все заработало как часы.

person Andreas Bauer    schedule 15.01.2020