web-services - 带有 jersey 2.0 且没有 maven 的 Restful Web 服务

标签 web-services rest jersey jersey-client jersey-2.0

谁能告诉我如何通过不使用 maven 来使用 Jersey 2.0 制作一个 Restful 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”文件夹。

    网页.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>
    

    我的应用程序
    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 - 带有 jersey 2.0 且没有 maven 的 Restful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923273/

    相关文章:

    java - 使用存储在 session 中的用户 ID 进行身份验证 - 安全风险/不良做法?

    java - 如何判断文件上传/下载 JAX-WS Web 服务是流式传输还是缓冲式?

    php - Apache 服务器需要更长的时间

    Python - Flask Api 异常

    node.js - 在 Node.js Web 服务器中确定用户角色并授予 API 访问权限的正确方法是什么?

    java - Jersey 分体有效载荷

    java - 使用 grizzly portunif 在同一端口中提供 http 和 rpc 服务

    php - USI 网络服务 SOAP 格式

    c# - 在 Visual Studio 2012 中使用 Web 引用

    python - Django REST Framework 文件上传导致 "Unsupported media type ' multipart/form-data'”错误