如何获取Alfresco ContentService对象?

时间:2014-02-28 21:26:16

标签: alfresco

我正在尝试阅读Alfresco中文件的内容。我见过使用过的例子 contentService的。不幸的是,当我尝试使用示例代码时,ContentService 不可用。 我在faces-config.xml

中添加了ContentService作为托管bean的托管属性
<managed-property>
<property-name>contentService</property-name>
<value>#{ContentService}</value>
</managed-property>

在我的java代码中,我正在使用

ApplicationContext ctx = ApplicationContextHelper.getApplicationContext();
final ServiceRegistry serviceRegistry = (ServiceRegistry) ctx.getBean(ServiceRegistry.SERVICE_REGISTRY);

// contentService is an instance variable.
this.contentService = serviceRegistry.getContentService();

我得到了这个例外:

javax.faces.el.E​​valuationException:调用表达式时出现异常#{DeployAssetQADialog.start} 引起的: javax.faces.el.PropertyNotFoundException:Bean:com.XXXXXXXXXX.CCCCCCCC.DeployAssetDialog,property:contentService

有人能告诉我是否有遗漏的东西吗?感谢

2 个答案:

答案 0 :(得分:1)

PropertyNotFoundException听起来像你的托管bean缺少一个setter方法。

如何将spring托管bean暴露给jsf可能取决于您使用的spring和/或jsf版本。请查看Spring beans injected into JSF Managed Beans示例。

最后,确保在jsf启动之前初始化您的Alfresco spring上下文。

答案 1 :(得分:0)

代码中的许多问题

1)对于注入的每个服务,您需要为它们添加getter setter方法。 如果为contentservice添加getter setter,你可以摆脱错误。

2)其他的事情是你试图通过服务注册表获得conentservice,在这种情况下你需要注入服务注册表并为此添加getter setter。否则直接通过faces-config注入contentservice实例,如果你为它添加了getter setter,你可以直接使用contentservice的实例。