Alright StackOverflow, я приду к вам в нужное время.
Я унаследовал проект с помощью специальной библиотеки тегов. Проект находится в AEM, но проблема скорее связана с прямой Java-частью вещей и не имеет ничего общего с AEM, о котором я знаю. AEM построена на OSGI, так что это может быть связано, но опять-таки это вряд ли будет частью ответа.
По сути, я получаю исключение только на одном из двух серверов. В нем говорится:
org.apache.sling.api.scripting.ScriptEvaluationException: org.apache.sling.scripting.jsp.jasper.JasperException: Файл "/META-INF/tags/helloWorld.tagx" не найден
Теперь - это helloWorld.tagx
- это вид мусора, оставленного в проекте шаблона, но по какой-то причине он необходим. Здесь есть несколько вопросов.
- Тег находится в нужном месте (
META-INF/tags/helloWorld.tagx
), и я используюjsptld-maven-plugin
для создания файлаtld
, который выглядит корректно для меня.
Конфигурация плагина (а также maven-bundle-plugin
):
<plugin>
<groupId>com.squeakysand.jsp</groupId>
<artifactId>jsptld-maven-plugin</artifactId>
<configuration>
<shortName>myproject</shortName>
<processTagFiles>true</processTagFiles>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Activator>com.rebny.taglib.osgi.Activator</Bundle-Activator>
<Include-Resource>
META-INF/${project.artifactId}-${project.version}.tld=${project.build.outputDirectory}/META-INF/${project.artifactId}-${project.version}.tld,
{maven-resources}
</Include-Resource>
<Sling-Bundle-Resources>
/META-INF/tags
</Sling-Bundle-Resources>
</instructions>
</configuration>
</plugin>
И сегмент из полученного tld файла:
<tag-file>
<name>helloWorld</name>
<path>/META-INF/tags/helloWorld.tagx</path>
</tag-file>
Так что это выглядит хорошо для меня, и я много раз искал и нашел людей с синтаксическими ошибками и т.д., но я не считаю, что это имеет место здесь, тем более, что он работает на одном сервере.
- Странная часть - это тег, который фактически не используется нигде, но удаление его не решает проблему. Jsp, бросающий эту ошибку, использует другие теги, но не этот. Буквально нет ссылок на этот тег во всем проекте - я думаю, что это может скрыть еще одну проблему. Ошибка говорит, что это в строке 6 JSP, но ни исходный JSP, ни скомпилированный JSP не имеют ничего интересного в строке 6 или вообще в файле. Опять же, даже скомпилированные JSP не имеют ссылки на этот тег!
Я рад предоставить другую информацию. Мои знания об этом довольно бедны, поэтому я не совсем уверен, какая информация актуальна. Любая помощь или советы по устранению неполадок очень приветствуются!
Полная трассировка стека здесь