当前位置: 首页 > news >正文

可以访问国外网站的dns温州企业网站建设公司

可以访问国外网站的dns,温州企业网站建设公司,广州产品网站设计,广州企业网站建设多少钱服务osgi在本文中#xff0c;我们将使用OSGi开发一个简单的Hello World应用程序。 我们将使用Felix作为OSGi容器 。 在下一篇文章中#xff0c;我们将继续使用该应用程序#xff0c;并使用Spring Dynamic Modules对其进行改进。 为了使开发有趣#xff0c;我们将创建两个捆… 服务osgi 在本文中我们将使用OSGi开发一个简单的Hello World应用程序。 我们将使用Felix作为OSGi容器 。 在下一篇文章中我们将继续使用该应用程序并使用Spring Dynamic Modules对其进行改进。 为了使开发有趣我们将创建两个捆绑包 提供HelloWorld服务的捆绑包 消耗该服务以定期间隔打个招呼的捆绑软件。 因此让我们从第一个捆绑包开始。 我们首先需要的是一个非常简单的服务在控制台中提供简单的打印 package com.bw.osgi.provider.able;public interface HelloWorldService {void hello(); }package com.bw.osgi.provider.impl;import com.bw.osgi.provider.able.HelloWorldService;public class HelloWorldServiceImpl implements HelloWorldService {Overridepublic void hello(){System.out.println(Hello World !);} } 我们再简单不过了。 然后我们需要使用激活器导出服务 package com.bw.osgi.provider;import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration;import com.bw.osgi.provider.able.HelloWorldService; import com.bw.osgi.provider.impl.HelloWorldServiceImpl;public class ProviderActivator implements BundleActivator {private ServiceRegistration registration;Overridepublic void start(BundleContext bundleContext) throws Exception {registration bundleContext.registerService(HelloWorldService.class.getName(),new HelloWorldServiceImpl(),null);}Overridepublic void stop(BundleContext bundleContext) throws Exception {registration.unregister();} } 这里有很多代码。 对于那些对OSGi不确定的人可以做一些解释。 当模块启动时将调用start方法而在模块停止时将调用stop方法。 在start方法中我们使用接口名称作为导出服务的名称在包上下文中注册我们的服务。 第三个参数null表示我们不为此服务提供任何配置。 在stop方法中我们只是取消注册服务。 现在我们的第一个捆绑包已准备就绪。 我们可以建立它。 为此我们将使用Maven和maven-bundle-plugin直接构建OSGi Bundle。 这是项目的pom.xml文件。 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdOSGiDmHelloWorldProvider/groupIdartifactIdOSGiDmHelloWorldProvider/artifactIdversion1.0/versiondependenciesdependencygroupIdorg.apache.felix/groupIdartifactIdorg.osgi.core/artifactIdversion1.4.0/version/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion2.0.2/versionconfigurationsource1.6/sourcetarget1.6/target/configuration/pluginplugingroupIdorg.apache.felix/groupIdartifactIdmaven-bundle-plugin/artifactIdextensionstrue/extensionsconfigurationinstructionsBundle-SymbolicNameOSGiDmHelloWorldProvider/Bundle-SymbolicNameExport-Packagecom.bw.osgi.provider.able/Export-PackageBundle-Activatorcom.bw.osgi.provider.ProviderActivator/Bundle-ActivatorBundle-VendorBaptiste Wicht/Bundle-Vendor/instructions/configuration/plugin/plugins/build /project 然后使用mvn install进行构建。 我们将在一个名为osgi的文件夹中工作因此我们会将这个新捆绑包复制到osgi文件夹中。 我们已经可以在OSGi容器中对其进行测试。 如果您还没有Felix请在这里下载。 您必须选择“ Felix分布”。 然后将其解压缩到我们之前创建的osgi文件夹中。 现在您必须具有以下文件夹结构 osgi- felix- OSGiDmHelloWorldProvider-1.0.jar 这样我们就可以进入felix文件夹并启动Felix wichtounetLinux-Desktop:~/Desktop/osgi/felix$ java -jar bin/felix.jar _______________ Welcome to Apache Felix Gogog! 并安装我们的捆绑包 g! install file:../OSGiDmHelloWorldProvider-1.0.jar Bundle ID: 5 该安装已正确安装我们可以尝试启动它并查看其状态 g! start 5 g! bundle 5 Location file:../OSGiDmHelloWorldProvider-1.0.jar State 32 Version 1.0.0 LastModified 1279124741320 Headers [ToolBnd-0.0.357, Bundle-Activatorcom.bw.osgi.provider.ProviderActivator, Export-Packagecom.bw.osgi.provider.able, Build-Jdk1.6.0_20, Bundle-Version1.0.0, Created-ByApache Maven Bundle Plugin, Bundle-ManifestVersion2, Manifest-Version1.0, Bundle-VendorBaptiste Wicht, Bnd-LastModified1279124686551, Bundle-NameUnnamed - OSGiDmHelloWorldProvider:OSGiDmHelloWorldProvider:bundle:1.0, Built-Bywichtounet, Bundle-SymbolicNameOSGiDmHelloWorldProvider, Import-Packagecom.bw.osgi.provider.able,org.osgi.framework;version1.5] BundleContext org.apache.felix.framework.BundleContextImpl2353f67e BundleId 5 SymbolicName OSGiDmHelloWorldProvider RegisteredServices [HelloWorldService] ServicesInUse null 一切都很好。 我们的服务注册良好 现在我们将尝试在第二个捆绑包中使用此服务。 我们的消费者类别将非常简单 package com.bw.osgi.consumer;import javax.swing.Timer;import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import com.bw.osgi.provider.able.HelloWorldService;public class HelloWorldConsumer implements ActionListener {private final HelloWorldService service;private final Timer timer;public HelloWorldConsumer(HelloWorldService service) {super();this.service service;timer new Timer(1000, this);}public void startTimer(){timer.start();}public void stopTimer() {timer.stop();}Overridepublic void actionPerformed(ActionEvent e) {service.hello();} } 现在我们必须创建激活器以获取服务然后将其提供给消费者。 这将使使用类似这样的东西 package com.bw.osgi.consumer;import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference;import com.bw.osgi.provider.able.HelloWorldService;public class HelloWorldActivator implements BundleActivator {private HelloWorldConsumer consumer;Overridepublic void start(BundleContext bundleContext) throws Exception {ServiceReference reference bundleContext.getServiceReference(HelloWorldService.class.getName());consumer new HelloWorldConsumer((HelloWorldService) bundleContext.getService(reference));consumer.startTimer();}Overridepublic void stop(BundleContext bundleContext) throws Exception {consumer.stopTimer();} } 我们使用类的名称从捆绑软件上下文中获得服务引用。 之后我们从包上下文获取服务实例。 我们还创建了一个小的pom.xml文件来构建捆绑包 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdOSGiDmHelloWorldConsumer/groupIdartifactIdOSGiDmHelloWorldConsumer/artifactIdversion1.0/versionpackagingbundle/packagingdependenciesdependencygroupIdorg.apache.felix/groupIdartifactIdorg.osgi.core/artifactIdversion1.0.0/version/dependencydependencygroupIdOSGiDmHelloWorldProvider/groupIdartifactIdOSGiDmHelloWorldProvider/artifactIdversion1.0/version/dependency/dependenciesbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion2.0.2/versionconfigurationsource1.6/sourcetarget1.6/target/configuration/pluginplugingroupIdorg.apache.felix/groupIdartifactIdmaven-bundle-plugin/artifactIdextensionstrue/extensionsconfigurationinstructionsBundle-SymbolicNameOSGiDmHelloWorldConsumer/Bundle-SymbolicNameBundle-Activatorcom.bw.osgi.consumer.HelloWorldActivator/Bundle-ActivatorBundle-VendorBaptiste Wicht/Bundle-Vendor/instructions/configuration/plugin/plugins/build /project 然后我们使用mvn install创建捆绑包并将其安装在容器中 g! start 6 g! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! Hello World ! g! stop 6 至此我们已经使用OSGi创建了第一个应用程序。 使用该技术您可以构建真正独立的模块。 在有关OSGi的下一篇文章中我们将看到如何使用Spring来简化OSGi的开发并将精力集中在应用程序而非OSGi上。 这两个捆绑包的来源可在此处获取 OSGiDmHelloWorldProvider来源 OSGiDmHelloWorldConsumer 参考 OSGi –简单的Hello World由JCG合作伙伴 Baptiste Wicht在Blog“ Baptiste Wicht”提供服务 。 相关文章 OSGi将Maven与Equinox结合使用 真正的模块化Web应用程序为什么没有开发标准 Java模块化方法–模块模块模块 翻译自: https://www.javacodegeeks.com/2011/11/osgi-simple-hello-world-with-services.html服务osgi
http://www.zqtcl.cn/news/405015/

相关文章:

  • 寿光企业建站流程个人网站用什么软件
  • 网站建设与管理自考本全国卷wordpress 关闭文章修订
  • 兴义市建设局网站首页网站开发项目实训总结
  • 个人网站空间收费网络软文营销案例
  • 网站开发文件结构组成微网站移交
  • 西安全网优化 西安网站推广网页浏览器缩略词
  • 网站开发及企业推广营销型网站建设怎么收费
  • 网站建设与管理ppt课件百度云盘关键词推广营销
  • c asp.net网站开发书宁波建设业协会网站
  • 政务网站建设发言材料知名互联网公司有哪些
  • 网站搭建制作建e室内设计网画图
  • 重庆市建设工程施工安全管理信息网北京seo公司网站
  • 国外做调查问卷的网站建设邮费自己的网站 要不要购买服务器的
  • 网站建设和优化排名四川建设网官网证书查询入口
  • 如何搜名字搜到自己做的网站电子商务平台icp备案证明
  • 网站建设与管理工作内容北京网站建设价
  • 做网站选哪个语言软文营销的方法
  • 青岛正规公司网站建设公司中国建设银行注册网站
  • 免费个人网站平台关键词检索
  • 定制型网站建设推广宁河网站建设
  • 主流网站开发语言有哪些电子邮件营销
  • 扫描二维码进入公司网站怎样做在万网上域名了怎么做网站
  • 销售型网站设计怎么做网站广告位
  • 网站推广的方法ppt购物网站logo
  • 网站关键词分割wordpress为展示的作品投票
  • 建立网站 域名 服务器吗wordpress超链接出错
  • 外贸开发网站建设注册会计师协会
  • 莆田建设网站dw网页设计作品及源码
  • 360免费建站视频淘宝客的网站怎么做
  • 四川自助seo建站短视频推广计划