我刚开始运行java spring webserver
时遇到以下错误 java.lang.ClassNotFoundException:org.springframework.web.method.support.CompositeUriComponentsContributor
此代码以前正在使用,我没有更改任何版本,因此我不确定发生了什么。我的pom中有以下spring框架依赖项
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${springSecurity.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${springSecurity.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>${springSocial.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-config</artifactId>
<version>${springSocial.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-security</artifactId>
<version>${springSocial.version}</version>
</dependency>
版本
<spring.version>3.2.3.RELEASE</spring.version>
<springSocial.version>1.1.0.BUILD-SNAPSHOT</springSocial.version>
<springSecurity.version>3.1.4.RELEASE</springSecurity.version>
此方法包含在org.springframework spring-web jar中,因此我还尝试使用maven依赖插件来跟踪其他依赖项是否使用以下cli参数加载旧版本
mvn dependency:tree -Dverbose -Dincludes=spring-web
然而,这显示没有结果。我还尝试了上一个问题Using Maven: Getting java.lang.ClassNotFoundException: org.springframework.web.bind.support.WebDataBinderFactory中的一些建议,但没有运气。
我最近添加到我的pom中的唯一其他工件是
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-api</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-impl</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-impl</artifactId>
<version>0.8.0</version>
</dependency>
但我不认为这些应该影响spring-web依赖。有没有人遇到过这个问题,或者对于我可以尝试弄清楚发生了什么有任何其他想法?
干杯, 真皮
答案 0 :(得分:2)
使用Spring 4.0.6.RELEASE以下缺少的依赖项解决了这个问题:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
答案 1 :(得分:0)
可能的原因是您的spring.version
低于4.0.0.RELEASE
。CompositeUriComponentsContributor
类可以在spring 4.0.0.RELEASE的spring web jar中找到。你可以找到那个jar here的maven依赖。
答案 2 :(得分:0)
因此经过大量的试验和错误后,添加下面的依赖似乎已经解决了我的问题
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
无法使用CompositeUriConponentsContributor和spring-web跟踪依赖关系,但看起来已经为我解决了问题...如果有其他人遇到类似的问题