草庐IT

java - 在 Eclipse 中将 JAR 嵌入到 OSGi 包中

我需要在Eclipse中开发的OSGi包中嵌入第三方JAR文件。我做了很多搜索和阅读,并且一遍又一遍地看到相同的东西:我真的不应该这样做。这不是OSGi做事的“方式”。这实际上很容易做到。只需将JAR嵌入包的根目录并在list中指定Bundle-ClassPath:.,jar_filename.jar。好的。除了我嵌入的JAR很小而且不太可能被我将在这个封闭系统上实现的任何其他东西使用,所以嵌入它要容易得多,这样用户只需要下载一个包(最终易于使用-用户至关重要)。所以我要打破常规并将其嵌入。现在,在IDE中,一切都是正确的。我将JAR放在我的Eclipse项目的src文件夹中,并配置项

java - 在 osgi-container 中找不到 hibernate-validator 的 el 实现

我尝试在osgi容器中运行Hibernatevalidator。javax.eljavax.el-api2.2.4org.glassfish.webjavax.el2.2.4org.apache.servicemix.bundlesorg.apache.servicemix.bundles.hibernate-validator5.0.2.Final_1joda-timejoda-time2.7org.jsoupjsoup1.8.1publicclassHibernateValidationProviderResolverimplementsValidationProviderReso

java - 使用 Web Start/JNLP 动态加载额外的 jar 文件

WebStartDevelopersGuide州AllapplicationresourcesmustberetrievedfromtheJARfilesspecifiedintheresourcessectionoftheJNLPfile,orretrievedexplicitlyusinganHTTPrequesttotheWebserver.StoringresourcesinJARfilesisrecommended,sincetheywillbecachedonthelocalmachinebyJavaWebStart.现在,我有一些资源我想在我的应用程序启动后动态加载(例如

java - 在 Apache Felix 中禁用缓存

我正在尝试按照此线程(http://osdir.com/ml/dev-felix-apache/2009-05/msg00051.html)中的说明禁用felix中的文件系统捆绑缓存。我在网上找不到具体的例子。有人可以帮我解决这个问题吗?这真的有效吗?提前致谢。克劳斯。 最佳答案 禁用包缓存是不可能的,这是框架所要求的。您可以将其配置为在每次启动时进行清理(org.osgi.framework.storage.clean),或者您可以尝试使用您的URL中引用的方法来创建您自己的包缓存。除了对框架代码本身进行黑客攻击之外,这些是您唯一

java - 如何在 JAX-WS 中控制 JAXBContext?

我需要为每个客户部署相同的网络服务。这@javax.jws.WebService使用Object作为方法参数和返回类型(导致wsdl中的)。Web服务的每个实例都与客户的jar一起部署在类路径上。此jar具有已知结构并包含客户希望通过我的服务处理的JAXB注释类。问题是,当客户将他的类的实例作为方法agrument传递时,服务器端JAXB上下文将其解码到一些奇怪的xercesdom节点中,因为(据我所知)仅在部署期间@WebMethod和@WebService扫描了注释,如前所述,所有注释都处理Object仅。简单来说,我需要在WEB-INF/lib/customer_classes_

java - 在 IntelliJ IDEA 11 中运行 Apache Felix 4.0.2

根据这个post,IDEA使用Osmorc运行OSGi框架。反过来,它使用PaxRunner启动不同的框架实现。IDEA11中的工具链只能运行ApacheFelix到3.0.2,但我必须运行4.0.2版本。可能吗?IDEA是否存在其他OSGi框架启动器? 最佳答案 您可以从插件+项目设置中配置Osmorc使用的OSGI框架。我使用IntelliJIDEA11.1.2和Osmorc1.4.2。这是我将OSGI容器(在IDE设置-->OSGi)配置到一些本地的屏幕截图安装ApacheFelix4.0.1。您还可以定义自定义框架/容器,然

java - 从浏览器访问 Web 服务

我对Web服务的工作原理还比较陌生,所以我已经阅读了来自http://blog.saminda.org/2008/07/light-weight-osgi-based-axis2-powered.html它设置了一个打印hello的网络服务。打印hello的代码是here.在同一项目中here,还有另一个网络服务将两个数字相加。要访问“hello”网络服务,我只需打开浏览器并转到http://localhost:8080/bridge/services/Version/getVersion.但是我该如何为计算器网络服务做到这一点呢?网址是什么?还是我必须先做一些额外的事情才能将其注册为

java - JDBC/OSGi 以及如何动态加载驱动程序而无需在包中明确声明依赖关系?

这是一个大问题。我有一个结构良好但单一的代码库,它有一个原始的模块化架构(所有模块实现接口(interface)但共享相同的类路径)。当我在应用程序服务器上进行部署时,我意识到这种方法的愚蠢以及它所代表的问题,这些应用程序服务器可能具有我的库的不同冲突版本。我现在依赖大约30个jar,并且正在中途将它们捆绑在一起。现在我的一些模块很容易声明版本化的依赖关系,比如我的网络组件。它们在JRE和其他BNDded库中静态引用类,但我的JDBC相关组件通过Class.forName(...)实例化,并且可以使用任意数量的驱动程序之一。我正在按服务区域将所有内容分解为OSGi包。我的核心类/接口(

java - 无法解析 1.0 : missing requirement [1. 0] osgi.wiring.package; (&(osgi.wiring.package=

我正在尝试启动我的一个bundle,但一启动它,我就收到以下异常。我不确定是什么问题。org.osgi.framework.BundleException:UnresolvedconstraintinbundleGoldeneyeModellingFramework[1]:Unabletoresolve1.0:missingrequirement[1.0]osgi.wiring.package;(&(osgi.wiring.package=com.host.domain.sharedpersonalize.storageservice)(version>=1.0.0)(!(versio

java - Log4j2 api在OSGi环境下找不到Log4j2核心

我正在尝试使用log4j2OSGi包,但log4j2api似乎无法在OSGi环境中找到log4j2核心。我不断收到以下异常:ERRORStatusLoggerLog4j2couldnotfindaloggingimplementation.Pleaseaddlog4j-coretotheclasspath.UsingSimpleLoggertologtotheconsole我发现在几个地方讨论了相同的异常,但我仍然无法弄清楚这个问题。我怀疑我遇到这个问题是因为log4j2api在log4j2核心的META-INF目录中找不到log4j-provider.properties。有什么线索