我正在构建一个 Angular 应用程序,该应用程序与使用 Spring 框架编写的 restful API 进行通信。
我的类层次结构是这样的:
class Resource
class FileResource extends Resource
class DbResource extends Resource
class DbFileResource extends DbResource
class DbServerResource extends DbResource
例如,我在我的发布请求中发送了这样一个 json 对象,它适合我的类层次结构中的 DbServerResource:
{
"resourceName": "Res2",
"resourceType": "DB_SERVER",
"dbms": "DB2",
"dbName": "SHOP",
"host": "<some ip>",
"port": 50000,
"userName": "user",
"password": "password"
}
在我的控制器中,我有一个我有的addResource
方法:
@RequestMapping (method = RequestMethod.POST, value="/resource")
private void addResource(@RequestBody Resource resource)
我有一个工厂类,我正在调用它来检索要使用的确切对象,方法是instanceof
:
public ResourceId getResourceId(Resource res){
if (res== null){
return null;
}....
但是在发送我的请求时,我收到了 NullPointerException:
java.lang.NullPointerException com...ResourceManager.validateResourceId(ResourceManager.java:861) com...management.resource.manager.ResourceManager.addResource(ResourceManager.java:127)
似乎工厂无法识别相关对象并返回 null!spring 如何识别它应该将 json 映射到哪个对象?!还是我做错了什么!