首页 > 难道Jersey不能和SpringMVC一起使用?在线等。谢谢各位愿意帮我的人。

难道Jersey不能和SpringMVC一起使用?在线等。谢谢各位愿意帮我的人。

求助,请看下面,是我的web.xml里的一段配置。

<!--配置SpringServlet-->
    <servlet>
        <servlet-name>freeride</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>freeride</servlet-name>
        <url-pattern>/web/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/static/*</url-pattern>
    </servlet-mapping>

    <!-- 配置JerseyServlet -->
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.business.webService</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

但是会报错,我曾经创了两个工程分别是Spring的和Jersey的,不会报错。把它们两个合起来就报错了。好无助啊。


下面是报错的一段:
[INFO ] [12:50:54] org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6a08de46: defining beans [freeRideDao,userDao,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0,dataSource,sessionFactory,hibernateTemplate,freeRideService,userService,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,cacheManager,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
[INFO ] [12:50:54] org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean - Closing Hibernate SessionFactory


还有下面一段:
[ERROR] [12:50:54] org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'freeRideService' defined in file [C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\ROOT\WEB-INF\classes\com\business\service\FreeRideService.class]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(Z)V


终于让我自己找到错误源头了。
本着javaer的精神,我要清清楚楚的告诉大家。

其实是包冲突了,不过这次和Spring与Hibernate的ASM包无关,
是ASM与cglib冲突。

只要把项目依赖里的cglib换成cglib-nodep就可以了

下面是我项目更改前后对比:


cglib
cglib
2.1_3



cglib
cglib-nodep
2.2

总结一下,maven这玩意真让人又爱又恨。

【热门文章】
【热门文章】