首先,我想说我是 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]
并且不知道如何处理它。也许有人可以建议我如何处理它。