我有一个很棒的网络应用程序 我想将它与另一个使用Jersey
实现的JSON中的休息接口的Web应用程序集成弹簧控制器正在使用RequestMapping,如:
@Controller
public class AdminPrinterController {
@RequestMapping(value = "/contact/view.action")
public @ResponseBody
Map<String, ? extends Object> view() throws Exception {...}
而Jersey控制器看起来像?:
@Path("/printerList")
public class PrinterListApi{
@Path("/internalPrinterList/{locationId}")
我整合了代码,但它显然不起作用......可能是因为Spring正在拦截Jersey网址
这是我的春天过滤器映射:
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
泽西岛能和春天一起生活吗?
或者我应该切换到Spring rest实现
谢谢
答案 0 :(得分:1)
这是可能的。您必须在项目中包含spring-jersey依赖项。然后你应该能够使用标准的spring servlet映射。我把它从一个非常古老的项目中拉出来,所以你可能想要检查更新的版本。虽然混合平针织物和弹簧有点乱。我认为更现代的方式是遵循春季启动休息教程。
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<!-- if your container implements Servlet API older than 3.0, use "jersey-container-servlet-core" -->
<artifactId>jersey-container-servlet</artifactId>
<version>2.23</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.23</version>
<exclusions>
<exclusion>
<artifactId>jersey-bean-validation</artifactId>
<groupId>org.glassfish.jersey.ext</groupId>
</exclusion>
<exclusion>
<artifactId>bean-validator</artifactId>
<groupId>org.glassfish.hk2.external</groupId>
</exclusion>
</exclusions>
</dependency>
抱歉编辑。我忘记了你的web.xml,你必须指向jersey servlet容器。
<servlet>
<servlet-name>SpringApplication</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.application.MainApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>