Jersey Restful搭建 及问题

来源:互联网 发布:淘宝卖家恶意取消订单 编辑:程序博客网 时间:2024/06/06 15:00
Jersey   Restful
一直报java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
问题原因 项目启动之后 Deployment Assembly 没有加载到 jar包
因为用的是maven, Deployment Assembly默认加载的webContent的lib中不存在jar所以加载不到
解决方法只要在Deployment Assembly中添加maven dependencies


所依赖的jar 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>RestDemo</groupId>
     <artifactId>RestDemo</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <properties>
           <java.version>1.7</java.version>
     </properties>
     <dependencies>
           <!-- https://mvnrepository.com/artifact/javax.ws.rs/jsr311-api -->
           <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>1.1.1</version>
           </dependency>

           <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet -->
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-servlet</artifactId>
                <version>1.17.1</version>
           </dependency>
           <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle -->
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-bundle</artifactId>
                <version>1.17.1</version>
           </dependency>
           <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
           <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.2.3</version>
           </dependency>

           <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>1.17.1</version>
           </dependency>

           <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-core -->
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>1.17.1</version>
           </dependency>

           <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>4.0</version>
           </dependency>
           <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>1.17.1</version>
           </dependency>
     </dependencies>
</project>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>RESTfulWS</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</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.controller</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app>


测试类

package com.controller;

import java.util.HashMap;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import net.sf.json.JSONObject;

@Path("user")
public class UserInfo {

    @GET
    @Path("/name/{i}")
    @Produces(MediaType.TEXT_XML)
    public String userName(@PathParam("i") String i) {

        String name = i;
        return "<User>" + "<Name>" + name + "</Name>" + "</User>";
    }

    @GET
    @Path("/age/{j}")
    @Produces(MediaType.TEXT_XML)
    public String userAge(@PathParam("j") int j) {

        int age = j;
        return "<User>" + "<Age>" + age + "</Age>" + "</User>";
    }

    @GET
    @Path("/v2")
    public  String getMessage() {
        JSONObject jsonobj=new JSONObject();
        String msg = "You get this message that is to say the restful is running smoothly!";
        jsonobj.put("code", 200);
        jsonobj.put("msg", msg);
        return jsonobj.toString();
    }
}
测试结果:
原创粉丝点击