Java 关键Web服务Spring错误

Java 关键Web服务Spring错误,java,spring,jackson,pivotal-web-services,Java,Spring,Jackson,Pivotal Web Services,当我将Spring应用程序上载到Pivotal Web Services时,会出现两个错误: ERR Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter]: Factory method 'jacksonHttpMessa

当我将Spring应用程序上载到Pivotal Web Services时,会出现两个错误:

ERR Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate
[org.springframework.http.converter.json.MappingJackson2HttpMessageConverter]: Factory 
method 'jacksonHttpMessageConverter' threw exception; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'objectMapper' defined in class path resource
[io/app/config/AppRestMvcConfiguration.class]: Bean instantiation via factory method 
failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to 
instantiate [com.fasterxml.jackson.databind.ObjectMapper]: Factory method 'objectMapper' 
threw exception; nested exception is java.lang.NullPointerException

因此基本上,它不能在我的配置类中初始化objectMapper和HaloObjectMapper(它们是在
SpringBootRepositoryRestMVCCConfiguration
类中预定义的)。当我在计算机上本地运行应用程序时,不会发生这些错误

我试图删除我的配置类,但它仍然给出了错误。我已尝试使用以下代码手动实例化objectMapper/HaloObjectMapper:

private final static ObjectMapper mapper = new ObjectMapper();

@Bean
@Primary
public com.fasterxml.jackson.databind.ObjectMapper objectMapper() {
    return mapper;
}

@Bean
@Primary
public ObjectMapper halObjectMapper() {
    return mapper;
}
这使得它可以在关键的web服务上运行,但每当我尝试访问MongoRepository时,就会出现堆栈溢出错误(我的模型中没有循环引用)


如何解决这个问题?

问题在于我为云设置mongo存储库服务的方式。使用以下代码使其工作:

@Configuration
@Profile("!local")
public class DatabaseConfiguration extends AbstractCloudConfig {
    @Bean
    public MongoDbFactory documentMongoDbFactory() {
        return connectionFactory().mongoDbFactory();
    }
}

问题在于我为云设置mongo存储库服务的方式。使用以下代码使其工作:

@Configuration
@Profile("!local")
public class DatabaseConfiguration extends AbstractCloudConfig {
    @Bean
    public MongoDbFactory documentMongoDbFactory() {
        return connectionFactory().mongoDbFactory();
    }
}

你试过什么?你有任何进一步的信息可以帮助你解决问题吗?@Magix我已经更新了我的答案!我真的不明白为什么把一个应用程序推到PWS上会导致这样的结果(尤其是NPE部分)。你确定该应用程序在本地工作吗?也许你在
云中有一些特殊的bean。如果在启用了
配置文件的情况下在本地运行应用程序,会发生什么情况?@StéphaneNicoll我通过改变设置mongo存储库的方式解决了这个问题。我从Cloud Foundry网站获取代码时,它写错了。好的。也许值得报道一下。我看了一下你的答案,如果你将mongo服务绑定到你的应用程序上,没有什么可做的,Spring Boot会自动为你创建连接工厂。你尝试了什么?你有任何进一步的信息可以帮助你解决问题吗?@Magix我已经更新了我的答案!我真的不明白为什么把一个应用程序推到PWS上会导致这样的结果(尤其是NPE部分)。你确定该应用程序在本地工作吗?也许你在
云中有一些特殊的bean。如果在启用了
配置文件的情况下在本地运行应用程序,会发生什么情况?@StéphaneNicoll我通过改变设置mongo存储库的方式解决了这个问题。我从Cloud Foundry网站获取代码时,它写错了。好的。也许值得报道一下。我看了你的答案,如果你把mongo服务绑定到你的应用程序上,那就没什么可做的了,Spring Boot会自动为你创建连接工厂。