org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
может произойти при попытке подключения к брокеру, ожидающему соединения SSL, а в конфигурации клиента не указано;
security.protocol=SSL
Проверьте случай атрибутов в Вашем элементе тега - они должны соответствовать случаю метода set, не случаю членских переменных (Который должен, вероятно, быть частным, между прочим).
Правило состоит в том, что название атрибута имеет свою первую использованную для своей выгоды букву, и затем результат снабжается префиксом 'набором', для прибытия в название метода set.
В Вашем случае Вы назвали атрибут 'firstname'
, таким образом, правило приводит к компилятор JSP, ища 'setFirstname' метод. Поскольку Вы назвали свой метод set 'setFirstName'
(с капиталом 'N'), необходимо использовать 'firstName'
(Также с капиталом 'N') для названия атрибута.
Примените то же правило к 'lastname'
атрибут, для прибытия в 'lastName'
, и необходимо быть в бизнесе.
P.S. Используя хороший IDE, как IntelliJ
, помог бы в этом случае, поскольку это предложит допустимые названия Ваших атрибутов, сохраняя Вас большое главное царапание.
Файл TLD в Вашем примере похож на ерунду, я не знаю, является ли это, потому что Вы не отформатировали его правильно.
Элемент тега для Вашего пользовательского тега должен иметь элемент атрибута, который соответствует каждому атрибуту, который Вы хотите выставить. Что-то как:
<tag>
<name>...</name>
<tag-class>...</tag-class>
<body-content>...</body-content>
<display-name>...</display-name>
<description>...</description>
<attribute>
<name>firstName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>...</description>
</attribute>
</tag>
Обратите внимание, что атрибутами по умолчанию Строки. Это может быть переопределено путем добавления элемента типа в элементе атрибута.