RestfulWebService實現之一--------------Jetty+Jersey方法一

通過Jetty+Jersey實現Restful Web Service

一、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>My.Demo.Restful</groupId>
  <artifactId>Jersey-JettyEmbed</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>mytest</name>
  <description>JettyEmbedServer with Jersey</description>
  <dependencies>
    <dependency>
  		<groupId>org.eclipse.jetty</groupId>
  		<artifactId>jetty-servlet</artifactId>
  		<version>9.4.8.v20171121</version>
  	</dependency>
  	<dependency>
  		<groupId>com.sun.jersey</groupId>
  		<artifactId>jersey-servlet</artifactId>
  		<version>1.19.4</version>
  	</dependency>
  </dependencies>
  <build>
    <plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.5.1</version>
			<inherited>true</inherited>
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
			</configuration>
            </plugin>
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>exec-maven-plugin</artifactId>
			<version>1.2.1</version>
			<executions>
				<execution>
					<goals>
						<goal>java</goal>
					</goals>
				</execution>
			</executions>
			<configuration>
				<mainClass>my.restful.Main</mainClass>
			</configuration>
		</plugin>
    </plugins>
  </build>
</project>

二、Main代碼

package my.restful;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import com.sun.jersey.spi.container.servlet.ServletContainer;


public class Main {

    public static void main(String[] args) throws Exception {
        Server server=new Server(8080);
		//////////////////////////ServletHolder////////////////////////////////
        ServletHolder servlet = new ServletHolder(ServletContainer.class);
        servlet.setInitParameter("com.sun.jersey.config.property.resourceConfigClass", 
        						"com.sun.jersey.api.core.PackagesResourceConfig");
        servlet.setInitParameter("com.sun.jersey.config.property.packages", "my.restful");
		/////////////////////////ServletContextHandler//////////////////////////////////////////
        ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);
        handler.setContextPath("/");
        handler.addServlet(servlet, "/*");
		////////////////////////////////////////
        server.setHandler(handler);
        server.start();
		//////////////////////////////////////
        System.out.println("JettyStart at  127.0.0.1:8080");
    }
}


三、資源類代碼

package my.restful;

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

/**
 * Root resource (exposed at "myresource" path)
 */
@Path("myresource")
public class MyResource {

    /**
     * Method handling HTTP GET requests. The returned object will be sent
     * to the client as "text/plain" media type.
     *
     * @return String that will be returned as a text/plain response.
     */
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getIt() {
        return "Got it!";
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章