是否有人成功地让Squeryl在OSGi环境中工作,特别是在Karaf3.03上。
到目前为止,我已经获得了要加载的各个依赖项,scala库、squeryl和jdbc driver.The安装的包如下所示:
51 | Resolved | 80 | 0.3.0.SNAPSHOT | ac.za.cput.pe.model
52 | Active | 80 | 2.11.6.v20150224-172222-092690e7bf | Scala Standard Library
53 | Active | 80 | 0 | wrap_mvn_org.squeryl_squeryl_2.10_0.9.5-6
54 | Active | 80 | 2.10.0.v20121205-112020-VFINAL-18481cef9b | Scala Standard Library
55 | Active | 80 | 0 | wrap_mvn_cglib_cglib-nodep_2.2
56 | Active | 80 | 0 | wrap_mvn_org.scala-lang_scalap_2.10.0
57 | Active | 80 | 2.10.0.v20121205-112020-VFINAL-18481cef9b | Scala Compiler
58 | Active | 80 | 2.10.0.v20121205-112020-VFINAL-18481cef9b | Scala Reflect
59 | Active | 80 | 0 | wrap_mvn_postgresql_postgresql_9.1-901-1.jdbc4在我的包中,我有如下代码:
Class.forName("org.postgresql.Driver")
SessionFactory.concreteFactory = Some(()=>
Session.create(
java.sql.DriverManager.getConnection("jdbc:postgresql://localhost:5432/pe","postgres"
,"12345"),new PostgreSqlAdapter
)
)它基本上是试图创建斜面会话工厂。
然而,当我启动karaf时,这是我遇到的错误:
加载程序约束冲突:当解析方法"org.squeryl.SessionFactory$.concreteFactory_$eq(Lscala/Option;)V“时,类装入器(当前类的org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5)实例,ac/za/cput/pe/model/activator/Activator )和类加载器(已解析类的org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5)实例,org/squeryl/SessionFactory$,对于签名中使用的concreteFactory_$eq类型有不同的类对象)
有谁有什么想法吗?我还有几个小时就从阳台上跳出来了。
发布于 2015-06-01 07:54:35
看上去你有很多不同的罐子。首先,确保正确导入了所有依赖项。第二,确保不将这些依赖项部分嵌入到自己的包中。关于这个问题,错误信息是非常清楚的。
您编译的版本与在运行时提供给您的版本不同。这可能是因为一个错误的导入(确保版本匹配),或者您在包中包含了不同版本的包。
https://stackoverflow.com/questions/30563080
复制相似问题