Hi,
This is my first time working on Adobe AEM. I have followed some tutorials and created the osgi bundle which exposes a Service Component. The bundle installs and deploys without any errors, but when I test it out in one of the existing geometrix sites by importing the class and package. I am getting jsp compilation errors. Anything I am missing here.
Here is my code
package com.fca.service;
import org.apache.felix.scr.annotations.Service;
import org.apache.felix.scr.annotations.Component;
@Component
@Service
public class FCAServiceImpl implements FCAService {
@Override
public String sayHello(String val){
return "FCA Service says: " +val ;
}
}
serviceComponents.xml
<?xml version="1.0" encoding="UTF-8"?><components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0">
<scr:component enabled="true" immediate="true" name="com.fca.service.FCAServiceImpl">
<implementation class="com.fca.service.FCAServiceImpl"/>
<service servicefactory="false">
<provide interface="com.fca.service.FCAService"/>
</service>
<property name="service.pid" value="com.fca.service.FCAServiceImpl"/>
</scr:component>
</components>
MANIFEST file
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: fcaservice
Bundle-SymbolicName: fcaservice
Bundle-Version: 1.0.0.SNAPSHOT
Bundle-Activator: com.fca.service.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.adobe.cq;uses:="org.slf4j,org.osgi.framework,org.osg
i.service.component";version="1.0.0.SNAPSHOT"
Import-Package: org.osgi.framework;version="[1.5,2)",org.osgi.service.co
mponent;version="[1.1,2)",org.slf4j;version="[1.5,2)"
Service-Component: OSGI-INF/serviceComponents.xml
my jsp code
<%@page session="false"%><%--
ADOBE CONFIDENTIAL
__________________
Copyright 2011 Adobe Systems Incorporated
All Rights Reserved.
NOTICE: All information contained herein is, and remains
the property of Adobe Systems Incorporated and its suppliers,
if any. The intellectual and technical concepts contained
herein are proprietary to Adobe Systems Incorporated and its
suppliers and are protected by trade secret or copyright law.
Dissemination of this information or reproduction of this material
is strictly forbidden unless prior written permission is obtained
from Adobe Systems Incorporated.
--%><%
%><%@include file="/libs/foundation/global.jsp" %><%
%>
<sling:defineObjects />
<%@page import="java.util.Collections,
java.util.Comparator,
java.util.Iterator,
java.util.List,
java.util.LinkedList,
org.apache.sling.api.resource.ResourceResolver,
org.apache.sling.api.resource.ResourceUtil,
com.day.cq.wcm.webservicesupport.ConfigurationManager,
com.day.cq.wcm.webservicesupport.ServiceConstants,
com.day.cq.wcm.webservicesupport.Service,
com.day.cq.wcm.webservicesupport.ServiceLibFinder,
com.fca.service.*"
%>
<%
com.fca.service.FCAService fca = sling.getService(com.fca.service.FCAService.class);
fca.sayHello("FCA");
ServiceLibFinder slf = sling.getService(ServiceLibFinder.class);
List<String> componentReferences = slf.getComponentReferences(pageProperties.getInherited("cq:cloudserviceconfigs", new String[] {}));
for ( String componentReference : componentReferences ) {
%><cq:include path="cloudservice" resourceType="<%= componentReference %>"/><%
}%>
Solved! Go to Solution.
Views
Replies
Total Likes
I assume that FCAService is an interface you have defined?
Try restarting AEM and see if a reboot helps AEM locate the bundle.
Do you have other classes in the Java package. Try creating a new package and make it unique. Sometimes if a package is used a lot - this happens - a weird issue.
Views
Replies
Total Likes
What is the error you are seeing ?
Views
Replies
Total Likes
An error occurred at line: 35 in the jsp file: /libs/cq/cloudserviceconfigs/components/servicecomponents/servicecomponents.jsp
com.fca.service.FCAService cannot be resolved to a type
32: com.fca.service.*"
33: %>
34: <%
35: com.fca.service.FCAService fca = sling.getService(com.fca.service.FCAService.class);
36: fca.sayHello("FCA");
37:
38: ServiceLibFinder slf = sling.getService(ServiceLibFinder.class);
An error occurred at line: 35 in the jsp file: /libs/cq/cloudserviceconfigs/components/servicecomponents/servicecomponents.jsp
com.fca.service.FCAService cannot be resolved to a type
32: com.fca.service.*"
33: %>
34: <%
35: com.fca.service.FCAService fca = sling.getService(com.fca.service.FCAService.class);
36: fca.sayHello("FCA");
37:
38: ServiceLibFinder slf = sling.getService(ServiceLibFinder.class);
at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:171)
at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:463)
at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:533)
at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77)
at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilterWithErrorHandling(WCMDebugFilter.java:182)
at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:149)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:259)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilterWithErrorHandling(WCMDeveloperModeFilter.java:162)
at com.day.cq.wcm.core.impl.WCMDeveloperModeFilter.doFilter(WCMDeveloperModeFilter.java:133)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282)
at org.apache.sling.engine.impl.SlingRequestProcessorImpl.dispatchRequest(SlingRequestProcessorImpl.java:322)
Views
Replies
Total Likes
Is FCAService listed in your bundle ?
If you goto /system/console/bundle and expand your bundle do you see a serviceId for this Service ??
Also, I dont see 'com.fca.service' package listed in the Export-Package in a manifest file. It has to be present in order to be available to be referred by any external places.
Views
Replies
Total Likes
Yes I do see the Id. Just added in the export package as well. Still see the same error
Symbolic Name | fcaservice |
Version | 1.0.0.SNAPSHOT |
Bundle Location | inputstream:fca-service-1-SNAPSHOT.jar |
Last Modification | Fri Apr 01 18:43:02 CDT 2016 |
Start Level | 20 |
Exported Packages | com.adobe.cq,version=0.0.0 com.fca.service,version=1.0.0.SNAPSHOT |
Imported Packages | org.osgi.framework,version=1.8.0 from org.apache.felix.framework (0) org.osgi.service.component,version=1.3.0 from org.apache.felix.scr (31) org.slf4j,version=1.7.6 from slf4j.api (22) |
Service ID 3510 | Types: com.fca.service.FCAService Service PID: com.fca.service.FCAServiceImpl Component Name: com.fca.service.FCAServiceImpl Component ID: 2651 |
Manifest Headers | Bundle-Activator: com.fca.service.Activator Bundle-ManifestVersion: 2 Bundle-Name: fcaservice Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-SymbolicName: fcaservice Bundle-Version: 1.0.0.SNAPSHOT Export-Package: com.adobe.cq, com.fca.service; uses:="org.slf4j, org.osgi.framework, org.osgi.service.component"; version="1.0.0.SNAPSHOT" Import-Package: org.osgi.framework; version="[1.5, 2)", org.osgi.service.component; version="[1.1, 2)", org.slf4j; version="[1.5, 2)" Manifest-Version: 1.0 Service-Component: OSGI-INF/serviceComponents.xml |
Used Services | |
Declarative Service Components |
Views
Replies
Total Likes
I assume that FCAService is an interface you have defined?
Try restarting AEM and see if a reboot helps AEM locate the bundle.
Do you have other classes in the Java package. Try creating a new package and make it unique. Sometimes if a package is used a lot - this happens - a weird issue.
Views
Replies
Total Likes
Thanks for all the help. The issue is resolved.
Views
Replies
Total Likes
Hey! Can you tell me how was the problem resolved? I am facing the same issue.
Views
Replies
Total Likes
Hey! I am facing the same issue and cannot find any solution in the replies. Can you tell me how did you resolve it?
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies
Views
Likes
Replies