首先,我想说我是处女座和OSGi的新手所以请耐心等待;)
这是我的问题:我正在玩“greenpages”lastes版本(http://www.eclipse.org/virgo/documentation/greenpages-documentation-2.4.0.RELEASE/docs/htmlsingle/greenpages-guide.html)示例项目,我想将对象传递形式jpa子项目项目更改为web子项目。我的变化如下:
<osgi:service ref="directory" interface="greenpages.jpa.JpaDirectory"/>
而不是
<osgi:service ref="directory" interface="greenpages.Directory"/>
并在Web项目上下文中:
<osgi:reference id="directory" interface="greenpages.jpa.JpaDirectory" />
其中Directory是一个接口而JpaDirecotry是实现,所以在我的web控制器中我希望有这样的东西:
@Controller
public class GreenPagesController {
@Autowired
private JpaDirectory directory;
....
}
我被迫将JpaDirectory类访问器从默认更改为“public”。但我仍然收到错误:
[2013-03-10 13:51:59.047] ERROR start-signaling-11 org.springframework.web.context.ContextLoader上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名为'directory的bean时出错':bean的初始化失败;嵌套异常是org.springframework.beans.TypeMismatchException:无法将类型'java.lang.String'的属性值转换为属性'interfaces'所需的类型'java.lang.Class []';嵌套异常是java.lang.IllegalArgumentException:找不到类[greenpages.jpa.JpaDirectory]
并且不知道如何处理它。也许有人可以建议我怎么做。
答案 0 :(得分:0)
您的捆绑包很可能不会导入包greenpages.jpa
。确保将greenpages.jpa
添加到捆绑包的MANIFEST.MF中的Import-Package
标题中。