有人可以告诉我如何通过不使用maven来使用Jersey 2.0进行静态Web服务。我到处搜索,找到了针对Jersey1.x版本的教程,但没有找到2.0版本的教程。请帮忙

最佳答案

我们根据用户答案user2629427提供详细的答案。我们在Windows 7上检查了这一点。

要求:(括号内是测试本示例的版本)

  • tomcat(8 zip版本)
  • Jersey (2.x)

  • 解压缩tomcat,并在tomcat的“webapps”文件夹中创建以下文件夹结构(文件夹名称区分大小写)。
    abc
      |___ WEB-INF
          |____ classes
          |____ lib
    

    将“Hello.java”和“MyApplication.java”放入“classes”文件夹,将“web.xml”放入“WEB-INF”文件夹。

    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee  http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        id="WebApp_ID"
        version="3.1">
    
        <servlet>
            <servlet-name>rest</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.king.MyApplication</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>rest</servlet-name>
            <url-pattern>/rest/*</url-pattern>
        </servlet-mapping>
    </web-app>
    

    Myapplication.java
    package com.king;
    
    import org.glassfish.jersey.server.ResourceConfig;
    
    public class MyApplication extends ResourceConfig {
        public MyApplication() {
            packages("com.king");
        }
    }
    

    你好.java
    package com.king;
    
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    @Path("/hello")
    public class Hello {
    
        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String sayPlainTextHello() {
            return "Hello Jersey";
        }
    
        // This method is called if XML is request
        @GET
        @Produces(MediaType.TEXT_XML)
        public String sayXMLHello() {
            return "<?xml version=\"1.0\"?><hello>Hello Jersey</hello>";
        }
    
        // This method is called if HTML is request
        @GET
        @Produces(MediaType.TEXT_HTML)
        public String sayHtmlHello() {
            return "<html><title>Hi Jersey</title><body><h1>Hello Jersey this is laksys</body></h1></html>";
        }
    }
    

    解压缩jersey并将所有jar文件从api,ext和lib(而非文件夹)复制到应用程序的“lib”文件夹中。

    现在,使用以下命令编译两个java文件
    D:\apache-tc-8\webapps\abc\WEB-INF\classes>javac -d . -cp ..\lib\javax.ws.rs-api-2.0.1.jar;..\lib\jersey-server.jar;..\l ib\jersey-common.jar *.java
    

    接下来运行tomcat服务器
    D:\apache-tc-8\bin>startup
    

    在浏览器地址栏中输入:http://localhost:8080/abc/rest/hello

    关于web-services - 不带Maven的jersey 2.0的 Restful Web服务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17923273/

    10-11 04:32
    查看更多