当前位置: 代码迷 >> java >> 春季尽管正确的contextClass仍将servlet contextConfigLocation类视为路径
  详细解决方案

春季尽管正确的contextClass仍将servlet contextConfigLocation类视为路径

热度:85   发布时间:2023-07-26 14:16:58.0

我们正在使用JavaConfig,并且我试图建立一个单独的应用程序上下文来解决Jersey 1.7中的一些问题(即,它在所有路径中都包含带有@Controller注释的所有Spring bean的方式)。

我已经设置了SpringServlet,我想像这样使用单独的应用程序上下文:

<servlet>
    <servlet-name>My Servlet</servlet-name>
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
    <init-param>
         <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
         <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
        <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.mycompany.admin</param-value>
    </init-param>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>com.mycompany.AdminWebConfig</param-value>
    </init-param>
</servlet>

但是,当我尝试使用其中一项服务时,Spring一直给我以下错误: 它正在尝试将我的班级名称视为文件路径:

[2015-08-07 11:52:20,081] [ERROR] [] [request=] [user=] [ip=] [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/my-app].
[My REST Service]] [Allocate exception for servlet My REST Service] java.io.FileNotFoundException: Could not open ServletContext resource [/com.mycompany.AdminWebConfig]

有什么想法吗? 我以为将contextClass设置为org.springframework.web.context.support.AnnotationConfigWebApplicationContext会使它认识到它是一个类名,但似乎并没有这样做。

Spring的 。 但是您没有使用DispatcherServlet ,而是使用了Jersey Jersey 。

  相关解决方案