Tag: aries

OSGI JNDI是否允许与来自非OSGI代码的JNDI调用共存?

OSGI Enterprise Release 5规范的第126章提到了兼容性: “支持Java SE和Java EE客户端使用的传统JNDI编程模型。” 和使用OSGI不知道的代码: “不知道OSGi的客户端和JNDI上下文提供程序使用静态方法连接到JRE JNDI实现.InitialContext类提供从提供程序访问Context的权限,提供程序使用静态NamingManager方法进行对象转换并查找URL上下文。传统模型不了解OSGi,因此只有在管理这种缺乏OSGi意识的后果时才能可靠地使用。“ 但是我不清楚这个文本是仅适用于在OSGI包内执行的“遗留”代码,还是OSGI容器外部的代码,在OSGI容器嵌入应用程序的情况下。 在嵌入方案中,OSGI容器外部和内部可能存在执行JNDI调用的应用程序代码,并且当它们在同一JVM中执行时,它们将共享JNDI实现。 问题:在嵌入式OSGI容器中运行的OSGI JNDI实现是否允许容器外部的OSGI无意识代码像往常一样执行其JNDI调用,或者是否需要移植到“OSGI-awareness”? 使用Apache Karaf 2.3.0(使用Apache Aries JNDI 1.0.0)自己尝试这个似乎不起作用,因为Apache Aries需要JNDI客户端调用来自OSGI包。 部分堆栈跟踪: javax.naming.NoInitialContextException: The calling code’s BundleContext could not be determined. at org.apache.aries.jndi.OSGiInitialContextFactoryBuilder.getInitialContext(OSGiInitialContextFactoryBuilder.java:46) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) at javax.naming.InitialContext.init(InitialContext.java:242) at javax.naming.InitialContext.(InitialContext.java:192) 问题:这是正确的行为,还是我可以参考的规范中有一部分违反了此限制?

Blueprint maven插件RuntimeException

我的代码中没有任何蓝图注释,但是当我尝试使用maven构建我的包时,我得到了 [ERROR] Failed to execute goal org.apache.aries.blueprint:blueprint-maven-plugin:1.1.0:blueprint-generate (default) on project data-collection-terminal-updates: Error building commands help: RuntimeException – [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.aries.blueprint:blueprint-maven-plugin:1.1.0:blueprint-generate (default) on project data-collection-terminal-updates: Error building commands help at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) […]