这些天我正在学习OSGI,CQ5。我正在尝试构建一个具有服务的捆绑包(我的第一个代码)。我成功构建了一个捆绑包并将该捆绑包上传到 CQ5 上,然后也安装了它。
但组件仅显示已注册,未激活。为什么 ?
我也想激活这个服务。我怎样才能做到这一点 ?网上有人说做jsp。我也这样做,但没有得到任何回应。帮我解决这个问题。我花了很多时间,大量搜索,但我没有得到任何解决方案。
如何在 CQ5、CRXDE(Adobe) 中使用我的服务。
JSP 代码是:-
<% var service = sling.getService(Packages.mh.osgitest.SayHello); %>
<%= service.sayHelloTest() %>
上面的代码不起作用。
这些截图是
捆
零件
服务
我的代码如下:-
问好
package service.expose;
import org.apache.felix.scr.annotations.Service;
public interface SayHello {
public void sayHelloTest();
}
SayHelloTestServlet // Servlet 在这里没有意义。
package service.expose;
import java.io.IOException;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Service;
@Component
@Service(value = SayHello.class)
public class SayHelloTestServlet implements SayHello {
public void sayHelloTest() {
System.out.println("Testing Say Hello");
}
@Activate
protected void activate() {
System.out.println("service started");
}
@Deactivate
protected void deactivate() {
System.out.println("service stopped");
}
}