我正在尝试将swagger-springmvc 0.9.5与SpringMVC 3.2项目与XML配置集成。
我的app-config.xml:
<beans xmlns="ht...
<context:annotation-config />
<mvc:annotation-driven>
<mvc:message-converters>
<bean id="messageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</mvc:message-converters>
</mvc:annotation-driven>
<context:component-scan base-package="com.myapp.info.v1.rest.endpoint"/>
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
</beans>
我收到以下错误:
java.lang.NullPointerException
com.mangofactory.swagger.models.property.field.FieldModelPropertyProvider.propertiesForSerialization(FieldModelPropertyProvider.java:54)
com.mangofactory.swagger.models.property.provider.DefaultModelPropertiesProvider.propertiesForSerialization(DefaultModelPropertiesProvider.java:31)
com.mangofactory.swagger.models.DefaultModelProvider.properties(DefaultModelProvider.java:104)
com.mangofactory.swagger.models.DefaultModelProvider.modelFor(DefaultModelProvider.java:54)
com.mangofactory.swagger.readers.ApiModelReader.execute(ApiModelReader.java:70)
com.mangofactory.swagger.readers.ApiModelReader.execute(ApiModelReader.java:38)
com.mangofactory.swagger.core.CommandExecutor.execute(CommandExecutor.java:13)
com.mangofactory.swagger.scanners.ApiListingScanner.scan(ApiListingScanner.java:98)
com.mangofactory.swagger.core.SwaggerApiResourceListing.initialize(SwaggerApiResourceListing.java:72)
com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin.initialize(SwaggerSpringMvcPlugin.java:427)
...
我开始调试,并意识到以下几点:
我发现三个帖子有相同的错误,但似乎没有一个相关。 我忘记了什么吗?我是SpringMVC框架的新手。
旁注:我还尝试了swagger-springmvc 0.6.6,并设法让它发挥作用。
答案 0 :(得分:2)
尝试更改配置以传入对象映射器的实例,看看是否有帮助
<mvc:annotation-driven>
<mvc:message-converters>
<bean id="messageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="jacksonObjectMapper" class="[replace with default ObjectMapper or your custom subclass]" />
答案 1 :(得分:1)
我们在OSGi /蓝图驱动的环境中遇到了类似的问题。 出于某种原因&#34;触摸&#34; JacksonSwaggerSupporty bean导致正确调用PostConstruct方法。 这不是很好 - 但是一个有效的解决方法。在OSGi中设置我们的swagger和spring上下文的bean包含:
// for some reason this line causes @PostConstruct to be called on bean correctly!
applicationContext.getBean(JacksonSwaggerSupport.class); // Do not remove!