(单纯的,我们自己的加了更多需要的插件)
<?xml version="1.0" encoding="UTF-8"?> <component name="TranslateService"> <implementation class="com.zyg.osgi.localtranslateasslt.impls.TranslateServiceLocalImpl"/> <service> <provide interface="com.zyg.osgi.translateasslt.service.TranslateService"/> </service> </component>
<?xml version="1.0" encoding="UTF-8"?> <component name="TranslateService"> <implementation class="com.zyg.osgi.remotetranslateasslt.impls.TranslateServiceRemoteImpl"/> <service> <provide interface="com.zyg.osgi.translateasslt.service.TranslateService"/> </service> </component>
<?xml version="1.0" encoding="UTF-8"?> <component name="TranslateServlet"> <implementation class="com.zyg.osgi.translateclient.servlet.TranslateServiceServlet"/> <reference name="TranslateService" interface="com.zyg.osgi.translateasslt.service.TranslateService" bind="setTranslateService" unbind="unsetTranslateService" policy="dynamic" cardinality="0..1"/> <reference name="HttpService" interface="org.osgi.service.http.HttpService" bind="setHttpService" unbind="unsetHttpService" policy="dynamic"/> </component>可以看到我们配置了Servlet和Servlet的实现,然后里面的参数是Servlet依赖的类,分别是TranslateService和HttpService。
package com.zyg.osgi.translateclient.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.osgi.service.http.HttpService; import com.zyg.osgi.translateasslt.service.TranslateService; public class TranslateServiceServlet extends HttpServlet{ private static final long serialVersionUID = 1L; private HttpService httpService; private TranslateService translateService; /** * 注入HttpService * @param httpService */ public void setHttpService(HttpService httpService){ try { httpService.registerServlet("/servlet/translateServlet", this, null, null); httpService.registerResources("/page", "pages", null); System.out.println("翻译助手服务已启动成功,请通过/page/translate.html访问!"); } catch (Exception e) { e.printStackTrace(); } } /** * 注销HttpService * @param httpService */ public void unsetHttpService(HttpService httpService){ if(httpService != this.httpService){ return; } try { httpService.unregister("/servlet/translateServlet"); httpService.unregister("/page"); System.out.println("翻译助手服务已停用成功,谢谢使用!"); } catch (Exception e) { e.printStackTrace(); } this.httpService = null; } /** * 注入TranslateService * @param translateService */ public void setTranslateService(TranslateService translateService){ this.translateService = translateService; } /** * 注销TranslateService * @param translateService */ public void unsetTranslateService(TranslateService translateService){ if(translateService != this.translateService){ return; } this.translateService = null; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1、取得用户传来的英文单词 String queryWord=req.getParameter("query_word"); //2、调用方法查找中文含义 resp.setContentType("text/html;charset=GBK"); PrintWriter writer=resp.getWriter(); if(translateService==null){ writer.println("没有开放翻译服务!"); writer.close(); return; } String result=translateService.translate(queryWord); //3、返回结果给用户 writer.println("结果"+result); writer.close(); return; } }
至此,我们的OSGI和Spring-DM整合成功。
转载请注明出处:http://blog.csdn.net/acmman/article/details/50935373