0

首先,我想说我是 Virgo 和 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"/>

在网络项目上下文中:

<osgi:reference id="directory" interface="greenpages.jpa.JpaDirectory" />

其中 Directory 是一个接口,而 JpaDirecotry 是实现,所以在我的网络控制器中,我想要这样的东西:

@Controller
public class GreenPagesController {

    @Autowired
    private JpaDirectory directory;
....

}

我被迫将 JpaDirectory 类访问器从默认更改为“公共”。但我仍然收到错误:

[2013-03-10 13:51:59.047] 错误 start-signalling-11 org.springframework.web.context.ContextLoader 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为“目录”的 bean 时出错:初始化bean 失败;嵌套异常是 org.springframework.beans.TypeMismatchException:无法将类型“java.lang.String”的属性值转换为属性“接口”所需的类型“java.lang.Class[]”;嵌套异常是 java.lang.IllegalArgumentException:找不到类 [greenpages.jpa.JpaDirectory]

并且不知道如何处理它。也许有人可以建议我如何处理它。

4

1 回答 1

0

很可能您的捆绑包没有导入包greenpages.jpa。确保将greenpages.jpa其添加到Import-Package包的 MANIFEST.MF 的标头中。

于 2013-03-10T14:33:17.810 回答