(OSGI应用与实践)运行petstore例子

    最近在看去年买的一本叫作《OSGI原理与最佳实践》一书,在书中的第三章讲到一篇如何运行一个建立在springdm上的petstore程序。经过反复的出错和实践,终于按照书上的相关步骤弄出一个可以运行的例子。

    书上所用的springdm为1.0版,而我这里用的是spring2.0 m1版,所以有些地方的配置可能和书上不一致。

    首先准备以下文件:

    Bootstrap

    ProductDal

    ProductList

    ProductManagement

    ShoppingCart

    ShoppingCartDal

    utils

    以上这些文件是从相应的source中直接导入到eclipse中,由于使用的是默认的编译选项,所以需要修改默认的Bundle-ClassPath,默认的是相应的工程名, 我这里修改为/bin(即eclipse默认的编译输出目录)。

   接下来,导入相应的springdm2.0的相应包

   1),

   org.springframework.osgi.core

   org.springframework.osgi.extender

   org.springframework.osgi.io

   org.springframework.osgi.web

   org.springframework.osgi.web.extender

   2),

   org.springframework.osgi.jetty.start.osgi

   org.springframework.osgi.jetty.web.extender

   3),

   org.springsource.javax.servlet

   org.springsource.net.sf.cglib

   org.springsource.org.aopalliance

   org.springsource.org.apache.log4j

   org.springsource.org.objectweb.asm

   org.springsource.slf4j.api

   org.springsource.slf4j.log4j

   org.springsource.slf4j.org.apache.commons.logging

   4),

    org.mortbay.jetty.server

    org.mortbay.jetty.util

   

    以上的相应包均从springdm2.0的dist和相应的lib包导入到eclipse中,其中第1部分从dist目录导入,第2部分,导入springdm与jetty融合的相应配置包,第3部分为相应运行所依赖的相应包,第4部分为jetty的运行服务器。这里需要注意的是不要导入eclipse所自带的jetty包,因为第2部分的包要求所依赖的jetty包的版本为6.1.9(即springdm自带的jetty包)。

     接下来,导入spring的相应包,此处的spring要求为3.0以上的版本(因为springdm2.0要求spring的相关包,版本为[3.0,4.0)),下载相应的spring包,导入以下包

    org.springframework.aop

    org.springframework.asm

    org.springframework.beans

    org.springframework.context

    org.springframework.context.support

    org.springframework.core

    org.springframework.expression

    org.springframework.jdbc

    org.springframework.transaction

    org.springframework.web

   

    导入完毕之后,设置工程中(即petstore)中所缺少的相应部分。配置运行时的包,即引用equinox的相应包,引用的包如下:

    eclipse自带的运行包

    现在可以运行了,运行之后,输入网址:http://localhost/petstore/app即可访问了。有一个问题就是,如果观看运行的终端,可以看到jetty启动了两个console,一个为默认的80,另一个为8080,其中第一个为org.eclipse.equinox.http.jetty提供的默认80,另一个为org.springframework.osgi.jetty.start.osgi提供的8080。如果把后一个去掉,则会在运行中报一个有关jetty没有成为相应的service的错误(不知道为什么)。

   

     配置过程中,出现了很多问题,比如servlet中无论如何也没有注入相应的httpService,最后才发现没有导入httpService的启动包,即(org.eclipse.equinox.http.jetty,它调用了由org.eclipse.quinox.http.servlet实现的httpserviceImpl,从而实现了org.eclipse.osgi.services,但这个实现类是由http.jetty包来启动的)。详细启动逻辑见http://flym.iteye.com/blog/687216。

    OK,终于算是启动成功了,接下来,得好好研究下springdm。不过感觉这一个工程所导入的jar也太多了吧,可能是由于刚开始做osgi的工程,以前弄一大堆jar包习惯还没有改变过来。

    

QV_1791504590577.mp4 立即下载

相关推荐

volatility 内存取证工具

volatility 内存取证工具,用于内存分析

终于配置PetStore成功

再次验证那句话:配置是永恒的话题~本人小白,参考网上的配置过程依旧出错。今天终于配置成功了,现记录如下:=====================================================================================一.配置准备:1、MyEclipse7.0 2、Javapetstore-2.0-ea5-installer.ja

baobaobag007的专栏 1866

YOLO26算法皮革表面缺陷检测+训练好的模型+124张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[颜色(color), 切(cut), 折叠(fold), 胶水(glue), 好的(good), 戳(poke)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 68 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.7582** mAP50-95 | 0.4306 Precision | 0.6226 Recall | 0.6520 train/box_loss | 0.8731 train/cls_loss | 2.3543 val/box_loss | 1.3709 val/cls_loss | 3.9767 【训练过程分析】 从一开始的配置就定下了基调,训练配置包括了 yolo26n 模型、100 个 epoch,学习率初始设为 0.01,输入尺寸定为 640x640,批次大小为 24。这组配置在开始阶段表现得不错,模型刚开始训练时的 loss 降低得很快,这表明模型能够迅速从数据中吸收信息。但到了中后期,loss 曲线变得愈发平缓,从第 50 个 epoch 开始,即使我增加了学习率衰减的频率,仍然感到曲线在挣扎,像是陷入了平台期。这期间模型的收敛节奏明显减缓,似乎有些“停滞不前”的迹象。到了最后,模型确实收敛了,但在第 68 个 epoch 时 mAP50 获得了 0.7582 的值,这是一个不错的成绩,但与理想值相比仍有提升空间。... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

osgi原理与最佳实践读书笔记

第1章 osgi简介.5 1.1 梦想中“即插即用”的系统5 1.2 osgi,拯救java模块化的规范1 1.3 厚积薄发的osgi2 1.4 osgi基本概念7 1.4.1 bundle3 1.4.2 service4 1.4.3 service-oriented component model(socm)4 1.4.4 declarative service6 1.4....

iteye_6930的博客 193

视频编码压缩11111

视频编码压缩11111

两相交错并联Boost电路仿真模型(Simulink仿真实现)

内容概要:本文详细介绍了基于Simulink平台构建的两相交错并联Boost电路的仿真模型,系统阐述了该拓扑结构在提升系统效率、降低输出电流纹波以及改善动态响应特性方面的技术优势。文中涵盖了主电路架构设计、双闭环控制策略(电压环与电流环)的实现原理、关键参数(如电感、电容、开关频率)的选取依据,并通过仿真结果验证了控制方案的有效性与稳定性。该模型突出展示了多相交错技术在功率变换器中的应用价值,有助于深入理解现代电力电子系统的设计思路与优化方法,适用于新能源发电、储能系统及高效率DC-DC变换器的研发场景。; 适合人群:具备电力电子技术基础理论知识和Simulink仿真操作经验的电气工程、自动化、能源动力等相关专业的本科高年级学生、研究生,以及从事电源变换器设计与开发的工程技术人员。; 使用场景及目标:① 掌握两相交错并联Boost电路的工作机理及其在减小输入/输出电流纹波中的作用;② 学习并实践双闭环反馈控制策略的设计与调试方法;③ 利用仿真模型开展控制器参数优化,提升系统的稳态精度与抗扰动能力,为后续硬件原型开发提供理论支撑与设计参考。; 阅读建议:建议读者结合仿真模型逐步操作,重点关注交错控制时序、占空比分配、电感电流交错现象及环路补偿设计,对照理论分析进行波形观测与参数调整,深化对多相并联拓扑动态特性的理解,并将其迁移应用于实际工程问题中。

OpenCore1.0.0M1 Released: Really Move OSGi to Server Side!

OpenCore是基于OSGi/Equinox构建的纯插件体系结构的服务端平台,主要功能是在OSGi基础上支持分级IoC、B/S结构、数据库访问等服务端特性,是我们开发的opengoss平台与产品的内核。 OpenCore1.0.0M1的发布只是一个很小的起点,但我们相信这是一个正确的技术方向,Java领域无论服务端还是客户端都将基于纯插件体系构建,并在同一业务领域(如我们开发的网络管理系统)实...

EryLee'Blog:记录程序人生 552

三相维也纳Vienna整流器电流过零畸变消除仿真模型【三种消除方法】(Simulink仿真实现)

内容概要:本文档围绕“三相维也纳Vienna整流器电流过零畸变消除仿真模型”展开,详细提供了基于Simulink平台实现的三种电流过零畸变抑制方法的仿真模型,旨在解决Vienna整流器在实际应用中由于开关死区效应、器件非理想特性等因素导致的输入电流在过零点附近出现波形畸变的问题,从而提升功率因数和系统效率。文档配套包含9kW三相三开关Vienna PFC整流器的Mathcad计算书,支持用户根据不同功率等级和电压规格进行系统级参数设计与优化。此外,资源还整合了双闭环控制策略、中点电压平衡控制、空间矢量脉宽调制(SVPWM)等关键技术的仿真模型,形成了一套完整、可复用的Vienna整流器控制系统研究与开发体系,适用于高性能电力电子变换器的研发与教学实践。; 适合人群:具备电力电子、自动控制或电气工程等相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事高功率因数整流器、PFC电路、新能源发电、电动汽车充电系统或工业电源研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解Vienna整流器电流过零畸变的产生机理及其对系统性能的影响;②对比分析并验证三种畸变抑制方法在不同工况下的控制效果与适用范围;③开展高效率、高功率因数整流系统的建模、控制器设计与仿真验证工作;④支撑高水平学术论文撰写、科研项目申报或实际工程项目的技术预研与方案论证。; 阅读建议:建议首先利用Mathcad计算书完成主电路参数设计,随后在Simulink中搭建或修改相应的控制模型,通过设置不同负载与输入条件,对比分析各方案下输入电流THD、功率因数、中点电位波动等关键指标,深入掌握控制算法的动态响应特性和鲁棒性,同时可结合双闭环架构与中点平衡策略进一步优化系统整体性能。

Spring DM 新一代Petstore 的实现 林浩 第3章的问题解决

 由于eclipse 3.5 的出现所以配制有点变化,希望可以对大家有点帮助。  bundles 插件明细:Bootstrap(1.0.0)com.springsource.org.aopalliance(1.0.0)org.springframework.osgi.core(1.2.0)org.springframework.osgi.extender(1.2.0)

Alf的专栏 1147

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其实际内容并非围绕该主题展开,而是作为一份优快云博客或科研资源共享平台的文章汇总清单,集中展示了多个工程技术领域的仿真研究与算法实现。涵盖的主要方向包括电力电子(如LLC谐振变换器、VSC-HVDC、PMSM控制)、电力系统优化(潮流计算、微电网调度、无功优化)、智能优化算法(遗传算法、粒子群优化、NSGA-II、多元宇宙算法等)、控制理论(模型预测控制、卡尔曼滤波、滑模控制)、信号与图像处理(故障诊断、雷达SAR成像、双目视觉测距)、无线通信与传感器网络、无人机路径规划与多智能体编队控制、车间调度、深度学习应用(LSTM、CNN、DQN)等。所有条目均基于Matlab/Simulink或Python实现,强调提供完整的仿真模型、源代码、参考文献及详细说明文档,便于用户直接下载与复现。该文档本质为“荔枝科研社”团队发布的科研技术服务推广目录,旨在展示其在多学科仿真建模方面的技术积累与资源服务能力; 适合人群:具备一定工程背景和编程基础的研究生、高校教师、科研人员以及从事自动化、电气工程、控制科学与工程、计算机科学、通信工程、智能制造等相关领域的技术人员; 使用场景及目标:①为科研工作者提供成熟的算法实现方案与仿真模板,显著降低课题开发与论文复现的时间成本;②辅助完成课程设计、毕业设计、科技竞赛(如数学建模大赛)、期刊论文复现等任务;③推动先进控制策略、智能优化算法和数据驱动方法在电力系统、智能制造、无人机集群、新能源管理等前沿领域的应用研究与成果转化; 其他说明:所有资源均通过百度网盘或微信公众号“荔枝科研社”免费提供下载,配套资料齐全,包含仿真模型、可运行代码、论文参考文献、技术文档等,支持快速部署、结果验证与二次开发,适用于教学、科研与工程实践场景。

基于单串电池保护IC:DW01-A/J开发的Battery Charger ,支持瞬态100A电池供电能力,适用于儿童 大脚车类

文件内含:原理图、PCB gerber、BOM,以及SMT位置文件,已验证完毕,可直接生产。

RAG 里的数字总答错:把算术从模型里拿出来,做单位归一、口径对齐与可复现计算

如果 RAG 系统的数字总答错,先看算术之前的那几步,而不是换一个更强的模型。具体到可执行的三件事:第一,让模型输出引文和口径声明,不输出数字。引文能被str.find定位,定位失败就拒答。这一步把「转录错误」从不可检测变成可检测。第二,单位归一是纯函数,用显式的换算表,缺单位时抛错而不是猜。百分比归一成小数,金额用Decimal。换算表是数据,不是代码逻辑,加一行就能扩一种单位。第三,口径做成,聚合前做一次相等比较,不等就抛。期间用半开区间,basis(单期/累计)和tax。

争者留其名 297

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

从“机械臂阵列”到“会思考的白车身”:2026汽车焊装数字化生产线行业调研.pdf

Python21-MCP代码修正

Python21-MCP代码修正

感谢所有乐于奉献的人,在此不一一具名 209

PHP实战:5分钟搞定SM4国密加密算法集成(附完整代码)

本文详细介绍了如何在PHP项目中快速集成SM4国密加密算法,提供完整的代码实现和实际应用示例。从算法原理到核心代码解析,再到性能优化与安全实践,帮助开发者高效实现数据加密功能,满足金融、政务等领域的合规需求。

weixin_29315569的博客 354

STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:    2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。    2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出

overflyme的博客 1万+

短链接服务中基于TDD的高并发处理与幂等性实现实战

引言在当今互联网服务中,短链接服务作为提升用户体验与降低传播成本的重要工具,广泛应用于各类业务场景。然而,随着用户量的增长,如何保障短链接服务在高并发场景下的可用性、幂等性以及应对流量突增带来的稳定性问题,成为开发者需要解决的关键难题。本文以TDD(测试驱动开发)为核心,结合单元测试手段,从设计到实现逐步讲解如何构建一个具备高可用性的短链接服务,并在实际部署中应对限流降级等挑战。

后台模板 58

【微信小程序开发与设计】垃圾智能分类小程序

垃圾分类是将来生活可持续发展的必需项。但是很多人由于缺乏垃圾分类知识,或是因为垃圾分类困难,费时费力,所以没有好好贯彻垃圾分类政策,此时设计一款方便于群众进行智能化垃圾识别分类的微信小程序就显得尤为必要。

Markelle_Fultz的博客 8246
上一篇: 转载:五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) - 整理
下一篇: Http协议简介(转载)+示例
Fly_m
博客等级 码龄20年 40粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值