2013-07-29 47 views
8

Ai cũng có thể cho tôi biết cách tạo một dịch vụ web an toàn với Jersey 2.0 bằng cách không sử dụng maven. Tôi đã tìm kiếm ở khắp mọi nơi và tìm thấy hướng dẫn cho các phiên bản Jersey1.x nhưng không tìm kiếm cho 2.0. Xin vui lòng giúpDịch vụ web an toàn với jersey 2.0 không có maven

+0

gì công cụ xây dựng nào bạn muốn sử dụng? –

+1

Tôi đang sử dụng nhật thực chỉ – user2629427

+0

Eclipse là một IDE, không phải là công cụ xây dựng. Nếu bạn không muốn sử dụng Maven, bạn có thể sử dụng Ant, hoặc Gradle, ... Bạn sử dụng cái nào trong số này? Eclipse * sử dụng cái nào trong số này? –

Trả lời

1

Tôi tìm thấy câu trả lời

package com.hellowebservice; 

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>" + "Hello Jersey" + "</title>" 
     + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; 
    } 

} 

web.xml

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

MyApplication.java

package com.hellowebservice; 
    import org.glassfish.jersey.server.ResourceConfig; 


    public class MyApplication extends ResourceConfig { 
     public MyApplication() { 
      packages("com.hellowebservice"); 
    } 
    } 

chạy với localhost: 8080/FirstRestWebService/nghỉ ngơi/hello

+2

Các JAR được bao gồm là gì? Bạn đã quản lý để trả về các đối tượng phức tạp thay vì chuỗi? –

+1

Tôi đã thử ví dụ này nhưng khi tôi nhấn vào URL nó nói "HTTP Status 404 -/FirstRestWebService/rest/hello" – Chetan

+0

bạn có thể làm rõ pls, điều gì có nghĩa là chạy với "localhost ..." máy chủ khởi động ở đâu? Phương pháp chính ở đâu? – Gobliins

1

Chỉ cần thêm vào câu trả lời trước đó. Nếu bạn không sử dụng Maven và chỉ xây dựng bằng cách sử dụng Eclipse với một Dự án Web động và triển khai tới máy chủ ứng dụng web như Tomcat.

Chỉ cần tải xuống bó JAX-RS 2.0 RI Jersey Downloads, giải nén và thêm tất cả các lọ trong thư mục lib, api và ext vào đường dẫn xây dựng của bạn. (Tôi đã thử mà không có ext jars nhưng có classnotfound khi bắt đầu máy chủ).

Cũng thêm tất cả các lọ vào Hội triển khai dự án web động của bạn để chúng tự động được sao chép vào thư mục WEB-INF/lib khi được triển khai tới máy chủ ứng dụng web của bạn. Cùng với mã số & web.xml trong câu trả lời ở trên, bạn nên có một api RESTful bằng cách sử dụng Jersey 2 và chạy.

1

Chúng tôi cung cấp chi tiết câu trả lời dựa trên câu trả lời của người dùng user2629427. chúng tôi kiểm tra này trên cửa sổ 7.

Yêu cầu: (dấu ngoặc chỉ ra phiên bản mà ví dụ này được thử nghiệm)

  • tomcat (phiên bản 8 zip)
  • jersey (2.x)

Giải nén tomcat & tạo cấu trúc thư mục bên dưới trong thư mục 'webapps' của tomcat (tên thư mục có phân biệt chữ hoa chữ thường).

abc 
    |___ WEB-INF 
     |____ classes 
     |____ lib 

Đặt 'Hello.java' và 'MyApplication.java' vào thư mục 'classes' và 'web.xml' vào thư mục '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"); 
    } 
} 

Hello.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>"; 
    } 
} 

Unzip jersey và sao chép tất cả các file jar từ api, ext, và lib (không thư mục) vào thư mục 'lib' của ứng dụng.

Bây giờ biên dịch hai tập tin java sử dụng lệnh sau

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 

Tiếp chạy server tomcat

D:\apache-tc-8\bin>startup 

Trong loại thanh địa chỉ trình duyệt này: http://localhost:8080/abc/rest/hello