Java 如何在SpringMVC中使用TOMCAT和Jackson在没有JSP的情况下将POJO转换为JSON?

Java 如何在SpringMVC中使用TOMCAT和Jackson在没有JSP的情况下将POJO转换为JSON?,java,json,spring,tomcat,jackson,Java,Json,Spring,Tomcat,Jackson,我必须创建一个项目,在其中我必须转换如下内容: http://localhost:8080/api/hello?person=Willie 例如: http://localhost:8080/api/hello?person=Willie { “留言”:“你好,威利!” } my POJO Model.java类: package com.mycompany.zad2; public class Model { private String person; pub

我必须创建一个项目,在其中我必须转换如下内容:

http://localhost:8080/api/hello?person=Willie
例如:

http://localhost:8080/api/hello?person=Willie
{
“留言”:“你好,威利!”
}

my POJO Model.java类:

    package com.mycompany.zad2;
public class Model {

    private String person;

    public void setPerson(String person) {
        this.person = person;
    }

    public String getPerson() {
        return person;
    }}
package controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.mycompany.zad2.Model;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/api/hello/")
public class JSONController {
    @RequestMapping(value = "person",method = RequestMethod.GET)
    @ResponseBody
    public Model jsoncontrol(@RequestParam(required = true,value ="person") String person) {
        Model m = new Model();
        m.setPerson(person);
        return m;

    }
}
my web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>
我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>zad2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>zad2</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>3.1.1.RELEASE</spring.version>
        <jackson.version>1.9.13</jackson.version>
        <jdk.version>1.7</jdk.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-instrument-tomcat</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-struts</artifactId>
            <version>3.1.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.1.4.RELEASE</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>/</path>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>6.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <finalName>
            spring-mvc-json
        </finalName>
    </build>

</project>

4.0.0
com.mycompany
zad2
1.0-快照
战争
zad2
${project.build.directory}/project
UTF-8
3.1.1.1发布
1.9.13
1.7
org.springframework
春季aop
3.1.1.1发布
org.springframework
春季asm
3.1.1.1发布
org.springframework
春季方面
3.1.1.1发布
org.springframework
春豆
3.1.1.1发布
org.springframework
spring上下文
3.1.1.1发布
org.springframework
spring上下文支持
3.1.1.1发布
org.springframework
弹簧芯
3.1.1.1发布
org.springframework
弹簧式
3.1.1.1发布
org.springframework
弹簧乐器
3.1.1.1发布
org.springframework
弹簧仪器tomcat
3.1.1.1发布
org.springframework
SpringJDBC
3.1.1.1发布
org.springframework
SpringJMS
3.1.1.1发布
org.springframework
春季甲虫
3.1.1.1发布
org.springframework
弹簧oxm
3.1.1.1发布
org.springframework
弹簧试验
3.1.1.1发布
org.springframework
德克萨斯州春季
3.1.1.1发布
org.springframework
弹簧网
3.1.1.1发布
org.springframework
SpringWebMVCPortlet
3.1.1.1发布
org.springframework
SpringWebMVC
3.1.1.1发布
org.springframework
减震器
3.1.1.1发布
javax.servlet
jstl
1.1.2
塔格利布
标准
1.1.2
爪哇
javaeewebapi
6
假如
org.codehaus.jackson
杰克逊地图绘制者
1.9.13
org.springframework.security
spring安全配置
3.1.4.1发布
org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
${annowed.dir}
org.apache.maven.plugins
maven战争插件
2.1.1
错误的
org.apache.tomcat.maven
tomcat7 maven插件
2.2
/
org.apache.maven.plugins
maven依赖插件
2.1
验证
复制
${annowed.dir}
符合事实的
爪哇
javaee认可的api
6
罐子
spring mvc json
还有我的dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:p="http://www.springframework.org/schema/p"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"  
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd

       http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security-3.2.xsd

       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.1.xsd">

<context:component-scan base-package="com.mycompany.controller"/>
<mvc:annotation-driven/>
</beans>

请帮助..我需要做什么才能获得JSON而不是HTTP状态404


你好

根据您的请求映射,您的请求应如下所示:

http://localhost:8080/[contextRoot/]api/hello/person?person=Willie
请注意您所拥有的两个变化。第一个是可能缺少的
contextRoot
值,具体取决于WAR文件的名称。第二个是在
/api/hello
之后缺少的
/person
,以匹配您的
@RequestMapping

假设您的WAR名为
spring mvc json.WAR
,则请求为:

http://localhost:8080/spring-mvc-json/api/hello/person?person=Willie

删除
RequestMapping上的最后一个
/
@RequestMapping(“/api/hello”)
此标题还需要更多内容keywords@KevinBowersox同样的故事,它仍然是HTTP状态404Ok它很有用:)非常感谢。现在我没有404,但它仍然无法检索JSON。现在是空白页。