jersey2 今天使用jersey2时遇到的一些问题

幸好以前有解决经验,一下就解决了

 

1.路径冲突问题

主要发生在tomcat启动服务时。jersey就会报错如下:

从字面意义上看,是Validation of the application resource model has failed during application initialization.的问题,应用初始化时资源模型的确认失败了。

会导致这个问题的原因其实有点多,比如说jersey的web.xml配置错误也会导致这个问题。但是最常见的原因是jersey的controller中路径配置重复了,jersey寻找controller时扫描到了相同的路径,无法识别模型资源,就导致了这个错误。

所以一旦报这个错,果断去检查路径是否重复,往往能很快解决问题。

2.找不到EntityFilteringFeature类

主要发生在tomcat启动服务时。jersey就会报错如下:

既然说这个类找不到,那么一般是依赖没有正确引入咯

查之,发现结果如下:

http://mvnrepository.com/artifact/org.glassfish.jersey.ext/jersey-entity-filtering

引入这个包之后,成功解决,项目可以正常启动。

3.jersey2中controller扫描的问题

一般web.xml配置如下:

重点在于这个配置:

<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.hzg.themis</param-value>

一般我都是会把controller文件集中放置在一个单独的包中,这样jersey的扫描范围就会很小,找到控制器的速度就会很快。但是一些情况下,会有controller到处分散放置的问题,这个时候就不得不把jersey的扫描范围变大。这样做的直接结果就是导致服务端响应速度变慢,所以我个人还是希望项目结构能保持一个良好的规范。

4.总结

我现在感觉其实很多时候jersey的偶发问题都是一开始项目框架配置得不好所导致的。所以我们最好一开始就要搭建能够良好使用的框架并且做好备份,那么之后的项目拓展和修改就会方便很多了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注