使用Jersey的Maven中的REST Web应用程序

时间:2017-07-03 05:53:46

标签: rest maven jersey

我是球衣的新手并试图创建使用其他网络服务的项目并回复我的json。以下是我的pom.xml

setup.cfg

的web.xml

<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>com.modaltestapp</groupId>
    <artifactId>modaltestapp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.modaltestapp</groupId>
<artifactId>modaltestapp-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>modaltestapp-api Maven Webapp</name>
<url>http://maven.apache.org</url>

<properties>
    <slf4j.version>1.7.9</slf4j.version>
    <logback.version>1.1.2</logback.version>
</properties>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.9</version>
    </dependency>



</dependencies>
<build>
    <finalName>modaltestapp-api</finalName>
</build>

java文件是:

<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>


<servlet>
<servlet-name>helloworld</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.modaltestapp.service</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

但是当我构建并运行应用程序时,它会显示错误:

 @GET
@Path("/print")
@Produces({ MediaType.APPLICATION_JSON }) // add MediaType.APPLICATION_XML
                                            // if you want XML as well
                                            // (don't forget
                                            // @XmlRootElement)
public List<RegistrationDto> getAllMessages() throws Exception {

    List<RegistrationDto> messages = new ArrayList<RegistrationDto>();

    RegistrationDto m = new RegistrationDto();

    m.setFirstName("Nabi");
    m.setLastName("Zamani");
    m.setAge(30);

    messages.add(m);

    System.out.println("getAllMessages(): found " + messages.size() + " message(s) on DB");

    return messages; // do not use Response object because this causes
                        // issues when generating XML automatically
}

我该如何解决这个问题?我正在使用Apache Tomcat 9。

2 个答案:

答案 0 :(得分:0)

[你可以按照这篇文章解决你的问题。确保你有所有的罐子。 &#34;新泽西州的servlet&#34; pom.xml中缺少maven依赖项。

<groupId>com.sun.jersey</groupId>
 <artifactId>jersey-servlet</artifactId>
 <version>1.17</version> 

] 1 [关注此链接] 1

答案 1 :(得分:0)

我认为这个主题是针对同一个问题的。您可以参考这些答案。 链接:java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer