我对java,osgi,bundles,cq5控制台等都是新手。
有没有人能给我指个教程或起点,我可以从中学到如何做我想要达到的目标。
基本上,我们在3-4个CQ5网站中有共同的搜索功能,所有这些网站都驻留在一个cq实例上。这个相同的功能在所有网站中都是作为servlet实现的,并使用javascript从客户端调用。冗余代码...我们希望: a)从servlet重复驻留的所有websiteName-core包中取出该servlet的代码。b)创建一个单独的、独立的、可安装的OSGI包,它只包含一个servlet。然后,我们想把这个独立的捆绑包从我们所有的CQ5网站的客户端调用。
为了避免代码冗余,我们希望让这个通用的搜索包可以发布,这样其他开发团队就可以在他们的项目中使用它,只需在他们的控制台中安装它并调用servlet即可。
长话短说。我想创建一个具有servlet的OSGI包。
我希望在这里对整个游戏有一个了解,并希望获得一个从头到尾解释它的教程链接。
发布于 2014-10-22 00:48:20
您可以从将搜索代码转换为单独的maven多模块project.The原型开始,创建一个原型的说明可以在adobe的文档站点(link)上找到。
maven多模块项目将有两个模块的Bundle和content。Bundle将包含所有的servlet、OSGI服务和后端内容。内容模块将拥有所有的UI和创作相关的东西,如模板和组件。它映射到CQ服务器上的存储库。UI节点被序列化,并作为XML文档存储在平面文件系统上。
因为它本身就是一个maven项目,所以它的依赖项将是自包含的。在bundle模块中,添加搜索servlet和所有必需的类。这个项目的编译包将是可装运的。
只要该软件包安装在服务器上,任何其他网站都可以调用它。
sling中的Servlet被实现为javax.servlet.Servlet
类的OSGI服务。Servlet类的任何导出服务都将被sling servlet解析器识别,您可以在此link中获得更多详细信息
发布于 2014-10-28 17:08:21
如果您想创建一组相关的包并将它们作为CQ内容包分发,Sharath Madappa的答案是正确的。
如果您只想创建一个捆绑包来打包一些OSGi服务(包括servlet),那么您只需要使用所需的元数据构建捆绑包jar。Apache Sling GET servlets bundle就是一个很好的例子。
https://stackoverflow.com/questions/26487654
复制相似问题