で一貫して動作しません。私のAPIアプリケーション(APIエンドポイントを公開しています)にjavax and jersey
を使用しています 私はfasterXmlからの例外をキャッチしようとしていますExceptionMapper。ExceptionMapperがJersey 2.xおよびjavax
私の問題は、POSTまたはPUTで間違った属性名を送信していると、いつか私のマッパーが例外をキャッチし、時にはそうでないことです。たとえば :一度自分のアプリケーションを実行する
- >すべてが例外をキャッチし、期待通りに働いています。
再び自分のアプリケーションを実行する(再起動) - >マッパーは、私は、ジャージー2.xのを使用して(そのように春か何かを使用していない)Tomcatをでホスティングしています何
をキャッチしません。
のweb.xml:
<servlet>
<servlet-name>api-service-endpoints</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
com.api.providers,
com.api.resources
</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
プロバイダコード:
@Provider
public class JsonMappingExceptionProvider
implements ExceptionMapper<JsonMappingException> {
public JsonMappingExceptionProvider() {
log.info("JsonMappingExceptionProvider created..");
}
private static final Logger log = LoggerFactory
.getLogger(JsonMappingExceptionProvider.class);
@Override
public Response toResponse(JsonMappingException exception) {
log.error("Error while parsing input", exception);
Response response = createBadRequestResponse();
return response;
}
任意のアイデア?