好的StackOverflow,我在需要的时候来找你。
我继承了一个带有自定义标记库的项目。该项目位于AEM中,但问题更多的是Java方面的问题,而且对于我所知道的AEM来说并不是特定的。 AEM建立在OSGI之上,因此可以相关,但同样不太可能成为答案的一部分。
基本上,我只在两台服务器中的一台上获得例外。它说:
org.apache.sling.api.scripting.ScriptEvaluationException:org.apache.sling.scripting.jsp.jasper.JasperException:File" /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>
所以它看起来很好,我已经做了很多搜索,发现有语法错误的人等,但我不相信这就是这种情况,特别是因为它适用于一台服务器。
我很乐意提供其他信息。我对此的了解很差,所以我不确定哪些信息是相关的。非常感谢任何帮助或疑难解答提示!
完整堆栈跟踪here