ClassNotFoundException:在Jetty中运行时的CompositeUriComponentsContributor

时间:2014-02-05 04:54:47

标签: java spring maven

我刚开始运行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依赖。有没有人遇到过这个问题,或者对于我可以尝试弄清楚发生了什么有任何其他想法?

干杯, 真皮

3 个答案:

答案 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.RELEASECompositeUriComponentsContributor类可以在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跟踪依赖关系,但看起来已经为我解决了问题...如果有其他人遇到类似的问题