首页 文章

Jackson 在WildFly服务器上的Spring.MVC问题

提问于
浏览
0

我找到了问题http://stackoverflow.com/questions/38129930/jackson-partial-working-cannot-return-listobject-or-collectionobject,我有兴趣找到解决的答案:

11:28:26,333错误[io.undertow.request](默认任务-11)UT005023:对/ Spring4MVCAngularJSExample / user /:org.springframework.web.util.NestedServletException的异常处理请求:处理程序调度失败;嵌套异常是java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectWriter.forType(Lcom / fasterxml / jackson / databind / JavaType;)Lcom / fasterxml / jackson / databind / ObjectWriter; org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:978)org.springframework.web.servlet.DispatcherServlet.doService上的[spring-webmvc-4.3.1.RELEASE.jar:4.3.1.RELEASE] (DispatcherServlet.java:897)[spring-webmvc-4.3.1.RELEASE.jar:4.3.1.RELEASE]> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)[spring-webmvc -4.3.1.RELEASE.jar:4.3.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)[spring-webmvc-4.3.1.RELEASE.jar:4.3.1 .RELEASE]在org.springframework.web的javax.servlet.http.HttpServlet.service(HttpServlet.java:687)[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] . servlet.FrameworkServlet.service(FrameworkServlet.java:846)[spring-webmvc-4.3.1.RELEASE.jar:4.3.1.RELEASE],位于javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[jboss -servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] ...

在我的情况下,当我在WildFly(8.x)服务器上使用WAR时,它发生在Spring REST API中,但Tomcat(8.5)服务器上的相同WAR工作正常 . 我仍在尝试找到一个解决方案,以便它也可以在WildFly服务器上运行 .

请注意,我遵循教程spring-mvc-4-angularjs-example,但最初通过Eclipse安装了WildFly(8.x)服务器 .

我还修改了 POM.xml 依赖关系,希望能解决Jackson依赖问题:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <springframework.version>4.3.1.RELEASE</springframework.version>
        <jackson.version>2.7.5</jackson.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>jackson-databind</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

如果有人有想法,我全都耳朵 .

1 回答

  • 0

    你应该在wildfly服务器内做一件事

    \ wildfly-8.2.0.Final \ modules \ system \ layers \ base \ com \ fasterxml \ jackson \ core然后进入内部检查你的jar版本它应该是2.8或以上的所有核心库 . jackson-annotations-2.8.0.jar jackson-core-2.8.3.jar jackson-databind-2.8.3.jar

    并更改所有jar.xml版本映射在module.xml内的最新版本名称,如下所示

相关问题