Ich versuche, ein Projekt in Eclipse
mit dem AEM Developer Tools
Plugin zu erstellen. Das Projekt ist in AEM
Server veröffentlicht und kann in: Websites
und CRXDE Lite
.Service-Komponente fehlt in AEM
Das Projekt wurde mit Maven Archetype-10
in Eclipse
erstellt und das Standardprojekt hat zwei Seiten in Englisch und Französisch. Wenn ich die Seite in der Site URL öffne, bekomme ich die end page, wo die Nachricht aus der HelloWorldModel
Klasse angezeigt werden sollte, zusammen mit dem anderen Text. Aber ich bekomme die Nachricht von der jeweiligen Klasse nicht. Stattdessen erhalte ich folgende Fehlermeldung:
org.apache.sling.api.scripting.ScriptEvaluationException: org.apache.sling.scripting.sightly.SightlyException: Kann nicht aa Datei entsprechend Klasse com.pen finden .mypen.core.models.HelloWorldModel im Repository.
Es sieht so aus, als ob die Java
Dateien im CORE-Projekt nicht veröffentlicht werden oder für die Webseite nicht sichtbar sind. Aber die 3 Pakete: Core
, Apps
und Content
sind alle in Eclipse
veröffentlicht und synchronisiert. Gibt es eine Möglichkeit zu überprüfen, ob das Java
-Paket auf AEM
Server bereitgestellt wird? Bitte führe mich zu dem, was mir hier fehlt. Sie finden den Fehler-Stack-Trace:
Caused by: org.apache.sling.scripting.sightly.SightlyException: Cannot find a a file corresponding to class com.pen.mypen.core.models.HelloWorldModel in the repository.
at org.apache.sling.scripting.sightly.impl.compiler.SightlyJavaCompilerService.compileRepositoryJavaClass(SightlyJavaCompilerService.java:212)
at org.apache.sling.scripting.sightly.impl.compiler.SightlyJavaCompilerService.getInstance(SightlyJavaCompilerService.java:113)
at org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider.provide(JavaUseProvider.java:127)
at org.apache.sling.scripting.sightly.impl.engine.extension.use.UseRuntimeExtension.call(UseRuntimeExtension.java:84)
at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call(RenderContextImpl.java:66)
at org.apache.sling.scripting.sightly.apps.pen.components.content.helloworld.SightlyJava_helloworld.render(SightlyJava_helloworld.java:53)
at org.apache.sling.scripting.sightly.impl.engine.runtime.RenderUnit.render(RenderUnit.java:54)
at org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine.evaluateScript(SightlyScriptEngine.java:92)
at org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine.eval(SightlyScriptEngine.java:78)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388)
UPDATE
- AEM - 6.2
Eklipse - Luna
Java - 1,8
Bitte beachten Sie meine neueste Update, das Ihr Problem lösen soll. –
@OliverGebert, danke für das Update. Ameesh Antwort funktioniert gut für mich. Glauben Sie, dass Ihre Lösung besser und standardgemäß ist? Wenn ja, dann werde ich Ihre Lösung implementieren und testen. Bitte beraten. – Anand
Das Hinzufügen der Abhängigkeiten im Zusammenhang mit dem Sling-Modell ist ziemlich schlecht, da Sie sich an die API und nicht an die spezifische Implementierung halten sollten. Gleiches gilt für Geronimo. Es sollte Ihnen egal sein, welches Bundle Ihre Abhängigkeiten aufdeckt, was zu weiteren Problemen führen kann, wenn diese Bundles mit einem Hotfix aktualisiert werden. Ich würde meinen eigenen Ansatz bevorzugen, weil ich mich nicht allzu sehr mit dem Standardprodukt einmischen möchte, aber ich würde nicht sagen, dass meine Lösung "besser" ist ... –