Jersey, Apache Wink 및 JBoss RESTEasy 중에서 선택하는 방법은 무엇입니까?
방금 Apache Wink 에 대해 들었고 Jersey 또는 JBoss RESTEasy 와 비교했을 때 어떤 차이점이 있는지 궁금합니다 . 다른 두 사람이 할 수없는 하나에서 무엇을 할 수 있습니까?
우리는 주로 단순성을 위해 일부 내부 프로젝트에 Jersey를 사용해 왔지만, 전환을 고려할 때이 다른 두 가지를 더 좋게 만드는 것이 무엇인지 실제로 파악할 수 없습니다. 누구든지 이러한 각각의 틈새 시장에 대한 사용 사례가 있습니까?
JAX-RS 구현
저지
- 참조 구현
- 일반적으로 가장 최첨단
- Atmosphere 또는 2.0 버전을 통해 진정한 비동기 (예 : 웹 소켓 등) 연결을 지원합니다 .
- Spring 및 표준 주입 컨테이너 (예 : @Inject)를 지원합니다.
- Glassfish가 번들로 제공합니다.
- 다른 JAX-RS 프로젝트보다 훨씬 모듈 식입니다.
- 킥 엉덩이 URI 빌더가 있습니다.
- 서블릿 컨테이너가 반드시 필요하지는 않습니다.
- 그리즐리 지원
- Netty 지원 (초기).
- Swagger 지원
- OAuth 2.0이 누락되었습니다. 다른 라이브러리를 사용해야합니다.
- 보기 가능 항목을 통한 일부 MVC 지원
- java.net에서 호스팅됩니다 (사이트가 매우 느리기 때문에 마이너스).
- 라이선스는 CCDL 1.1 및 GPL-v2를 기반으로합니다. 상업용으로 사용하기 전에 Jersey 라이선스를 확인하십시오.
https://jersey.github.io/license.html
RestEasy
- 위의 대부분이지만 가장 주목할만한 것은보기 기술을 지원합니다 ( HTMLEasy 참조 ).
- 그것은 가지고 비동기 연결 지원
- 캐시 지원
- EJB 지원 (당신이 그 쓰레기에 빠져 있다면)
- JBoss가 번들로 제공합니다.
- Netty 지원
- 틀림없이 최고의 Spring 통합 (MVC 핸들러) .
- 초기 Swagger 지원
- 초기 OAuth 2.0 지원을 포함한 추가 보안 지원
Apache Wink
(사용하지 않음)
- 이 프로젝트가 왜 존재하는지 모르겠습니다.
- 아마도 고성능에 중점을 두었습니다.
- HttpUrlConnection 위에 구축 된 클라이언트가 있습니다 (마이너스입니다 ... Spring RestTemplate 처럼 플러그 가능해야합니다 ).
- 기본적으로 Wink는 일부 기업 회사에서 자체 개발 한 후 Apache에 제공되었습니다.
- 서블릿 컨테이너가 필요합니다.
Restlet
- 매우 강력하지만 매우 복잡합니다.
- 낮은 수준의 REST 지원을 제공합니다.
- 서블릿 컨테이너가 필요하지 않습니다.
Apache CXF
- 흥미로운 WADL 지원.
- JAX-WS와 함께 JAX-RS 재사용 및 또는 결합
- 보안 지원
- 다소 불쾌하지만 Spring과의 통합
- 클라이언트 스텁의 자동 생성 가정
기타 RPC 유사 시스템
메시지 대기열
- RabbitMQ
- ActiveMQ
비동기 RPC
- Finagle- 트위터에서.
- msgpack-rpc
내 겸손한 의견
OP가 REST를 요청한 것을 알고 있지만 이것이 내부 통신을위한 것이라면 요구 사항이 해당 시스템과 일치하는 경우 기존 REST 대신 메시지 큐 또는 다른 비동기 RPC (Finagle)를 사용하는 것이 좋습니다.
클래식 HTTP REST (외부) 여야한다면 RestEasy 또는 Jersey 중 하나를 선택할 것 입니다.이 두 프로젝트에 많은 마인드 쉐어가 들어가기 때문입니다.
참조 : Java 용 나머지 클라이언트?
사용할 구현을 선택할 때이 점을 염두에 두십시오. Jersey 웹 서비스를 JBOSS 7.1에 배포하려고하면 작동하지 않습니다. 이 오류가 발생합니다.
Only one JAX-RS Application Class allowed
This is because REST Easy comes bundled with JBOSS as the default JAX-RS implementation. So, JBOSS will decide that that's the implementation you want to use and will not load another JAX-RS implementation (like Jersey). In order to fix this, you need to add the following lines to your web.xml file:
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
Link: https://community.jboss.org/message/744530
One of my favourite Jersey extensions is Viewables. Viewables allow you to bind your data easily to a JSP page to implement a true Model-View-Controller (MVC) architecture:
If you're going to use JBoss 7.x you must use RestEasy, 'cause it's integrated in JBoss. To use Jersey with JBoss 7.x, you have to disable RestEasy and it is complicated!
'code' 카테고리의 다른 글
(…) 쿼리에서 HQL을 작성하는 적절한 방법 (0) | 2020.10.19 |
---|---|
Func 및 Action에 해당하는 Java의 기능 (0) | 2020.10.19 |
SQLite에 존재하지 않는 경우 ALTER TABLE ADD COLUMN (0) | 2020.10.19 |
Powershell : 스크립트에 오류가 표시되지 않도록하려면 어떻게해야합니까? (0) | 2020.10.19 |
Dapper 쿼리에 대한 인수를 동적으로 만드는 방법 (0) | 2020.10.19 |