You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringMVC接口入参为ObjectStore时提示无可用构造方法如何解决

错误根因

你将com.filenet.api.core.ObjectStore直接作为Spring MVC控制器的请求映射方法入参,Spring MVC会对没有加参数绑定注解的自定义类型参数,默认尝试通过反射调用无参构造方法实例化对象,再绑定请求参数。但ObjectStore是FileNet P8的核心接口,没有构造方法,无法直接实例化,因此触发了该报错。

解决方案

方案1:移除控制器入参,服务内部获取ObjectStore实例(最常用)

ObjectStore是服务端的FileNet对象存储连接实例,不应该由请求参数传入,你可以直接把控制器方法中的ObjectStore os参数移除,在业务逻辑层内部完成实例的初始化和获取。
修改后的控制器代码:

@GetMapping("/dps/{documentName}")
@ResponseBody
public Document findAccountDetails(@PathVariable String documentName) {
    return myService.fetchDocById(documentName); 
}

随后在myService的fetchDocById方法内部,按照FileNet官方的连接流程,通过已配置的域、连接信息获取对应的ObjectStore实例即可。

方案2:自定义参数解析器(需要保留控制器入参时使用)

如果你需要继续在控制器方法中保留ObjectStore os作为入参,可以自行实现Spring MVC的HandlerMethodArgumentResolver,自定义该类型的参数解析逻辑:

  • 实现HandlerMethodArgumentResolver接口,supportsParameter方法判断参数类型是否为ObjectStore
  • resolveArgument方法中编写你的ObjectStore实例获取逻辑
  • 将自定义的解析器注册到Spring MVC的参数解析器列表中
注意事项

ObjectStore属于服务端内部的资源连接对象,所有初始化逻辑必须放在服务端内部实现,不要接受前端传参构造该实例,避免出现安全漏洞和资源泄漏问题。


内容的提问来源于stack exchange,提问作者Chiranjib Patra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:24:03