2009-10-01 4 views

답변

3

Java 웹 서비스에 AXIS 또는 CXF가 필요합니까?

번호 Axis2 있지만 웹 서비스와 함께 작동하는 가장 인기있는 프레임 워크를 할 수있는 유일한 방법은 아닙니다.

JDK (1.6)를 통해 모두 수행 할 수 있습니까?

네,하지만 훨씬 더 어렵습니다. 다른 앱에서 사용하는 프레임 워크와 개발 팀이 제공하는 버그 수정을 통해 엄청난 이익을 얻을 수 있습니다. 모두 손으로하는 것은 바퀴를 다시 만드는 것과 같습니다.

당신이 아래에 무슨 일이 일어나고 있는지에 대한 모든 권한을 가지고 싶다면

은, 아마 당신은 함께 갈 수 : JAX-WS

또는 응용 프로그램이 직접 소켓, 매우 간단합니다.

그러나 다시, Axis2은 정규 WS 당신이 whish과 같이 웹 서버에 의해 제공되는 HTTP 스트림을 사용할 수 있습니다

+1

그냥 추측하지만, 그는 아마 그것보다 조금 더 자세하고 싶어합니다. –

+0

@ 윌리엄 : 더 자세히 설명하기 위해 편집 됨. 나는 그 밖의 어떤 것이 추가 되더라도 그 대답은 똑같을 것이라고 생각합니다. 축이 필요합니까? 아니요, JDK로 할 수 있습니까? 네,하지만 훨씬 더 어렵습니다. :) – OscarRyz

1

(그러나 유일를) 할 수있는 방법이 있지만, 프레임 워크를 사용하여 일부 항아리 (이다 입증 된 작동) 장기적으로 많은 두통과 많은 시간을 절약 할 수 있습니다.

0

일반적으로 웹 서비스 프로그래밍 프레임 워크를 사용하려고합니다.

AXIS, CXF 또는 Java EE (GlassFish)와 같은 것이 Sun에서 다운로드됩니다.

2

Axis에 대한 대안으로 Spring WebServices 프레임 워크를 사용하여 Tomcat 또는 이와 유사한 J2EE 컨테이너에서 웹 서비스 응용 프로그램을 실행할 수 있습니다. 나는 그것을 사용하고 설치하는 것이 매우 쉽다는 것을 알았고 나중에 다른 웹 애플리케이션에 웹 서비스를 통합하고자한다면 매우 쉽게 할 수있다.

+0

축 1? 나쁜. 축 2? 더 나쁜. +1 스프링 웹 서비스. – duffymo

3

진정한 개인의 이야기에 모든 기반으로 다음

그래서 당신은 당신의 자바 웹 응용 프로그램에서 웹 서비스를 사용하려면, 당신은에 항아리 10MiB를 추가하지 않으려는 (당신은 코드 XPath 쿼리와 XSLT 파일을 수작업으로 처리 할 수있다.) XML을 파싱 할 수 있다는 것 외에도, HTTP를 완전히 이해하고 있으며, 인터페이스하는 클라이언트는 훌륭한 문서를 가지고있다. 엔드 포인트와 메소드에서 WSDL보기를 다운로드하고 필요한 기능에 맵핑되는 Java 클래스 작성을 시작하십시오. 당신은 이미 위대하다고 느낍니다.

SOAP 요청을 보내는 방법에 대한 기사를 읽기 시작하면 조금 자세하게 보일 것입니다.하지만이게 전부 단순한 문자열이기 때문에 Java 요청 객체를 가져 와서 변환하는 유틸리티를 작성하기 시작합니다 SOAP 요청. 명확한 SOAP 요청을 서버로 보내지 만 거부됩니다 (missing a signature).

이제 암호화 JAR을 프로젝트에 추가하기 시작하면 XML 문서의 일부 서명을 계산하고이를 요청에 포함시키는 방법을 살펴보기 시작합니다.이것은 당신에게 잠시 걸리지 만 충분한 해킹으로 당신이 비누 서비스에 보낼 수있는 메시지를 얻고 이제는 SOAP response을 다루고 있습니다. 이제 당신은 기분이 좋습니다 ...

클라이언트의 관리자가 보안 요구 사항을 변경하고 새로운 공개 키를 발행하고 일부 사용자 정의 유형으로 비누 인터페이스를 업데이트 할 때까지 그리고 비슷한 서비스를 실행중인 다음 클라이언트 (그러나 Windows 서버에서) 당신도 그들과 함께 구현하기를 원한다.

이 시점에서 나는 이것을 순수 자바 방식으로 구현하려고 시도하지 않고 표준 라이브러리를 사용하기 시작했습니다. 암호화, 마샬링, 편차 같은 표준을 구성하고 문제 영역에 더 가까운 물건에 집중할 수있게합니다. 나는이 교훈을 배우기 위해 내가 잃어버린 달을 스스로 구할 수 있기를 바랍니다.

3

SOAP과로 사용 2013

웹 서비스에서 웹 서비스의 풍경에 업데이트 XML을 기반. 웹 서비스는 JAX-WS로 표준화되었습니다. 더 많은 인기를 프레임 워크의 일부는 (했다)입니다

  • 축 1.x에서
  • 축이
  • 아파치 CXF - CXF는 다른 프로토콜을 포함하고 있습니다. 훨씬 더 광범위한 프레임 워크입니다.
  • JAX-WS 참조 구현이 포함 된 메트로 웹 서비스.
  • Java 6 및 Java 7에는 기본적으로 JAX-WS RI가 포함되어 있습니다. 즉, 클라이언트 및 서비스 스텁/스 켈리 톤을 생성하기 위해 프레임 워크가 더 이상 필요하지 않다는 것을 의미합니다.

여기에 나열되지 않은 벤더에 따라 다른 구현이 있습니다. IBM Websphere의 WS 구현 및 Weblogic의 WS 구현

일반적으로 웹 서비스를 만들려면 Metro와 JAX-WS RI를 사용하는 것이 좋습니다.

많은 WS- * 표준이 있습니다. 모든 WS 구현의 일부가 아닌 WS-Security.

웹 서비스가 한동안 있었기 때문에 아키텍처 스타일, 프로토콜 및 인코딩 측면에서 다른 대안이있었습니다.

예를 들어 XML은 사실상의 인코딩이었습니다. JSON이 보급되었습니다. Jackson, JSON 파서 또는 Google GSON을 조사해 볼 가치가 있습니다. JSON을 선호하는 주된 주장은 사용하기 쉽고, 가볍고, 개발자에게 친숙하다는 것입니다.

JSON과 함께 REST가 제공됩니다. REST는 아키텍처 스타일입니다. REST를 사용하면 네트워크를 통해 쉽게 소비 될 수있는 원격 서비스라는 의미에서 "웹 서비스"를 구현할 수 있습니다. REST는 JAX-RS와 같은 Java 표준 제품군에서도 표준화되었습니다. 널리 사용되는 JAX-RS 구현 중 일부는 CXF, Jersey 및 RESTLet을 포함합니다.

마지막으로 이진 인코딩을 사용하는 블록에 새로운 아이들이 있습니다. 그것들은 Google Protocol Buffers와 Apache Thrift입니다. 주요 목표는 성능뿐만 아니라 다른 언어 (Java, C#, Erland, Perl ...)에 대한 광범위한 지원입니다.

오늘 웹 서비스를 개발할 때 질문은 다음과 같아야합니다. - 성능은 중요합니까? - 다양한 언어로 서비스에 액세스하고 싶습니까? - 모바일 친화적 인 제품을 원하십니까?

귀하의 선택에 도움이 될 것입니다. 또한 필자는 최소한 내 의존성을 유지하는 것을 선호합니다. 이것은 JRE 나 JDK에 고유 한 것을 취하는 것을 의미합니다. JAX-WS 또는 JAX-RS 참조 구현

+0

감사합니다. 매우 유익합니다. –

+0

2016 년에이 답변을 업데이트 해 주시겠습니까? 변경된 사항과 새로운 표준은 무엇입니까? 같은 주제에 대한 자세한 내용은 블로그 게시물이 있습니까? – gonephishing

+0

나는 JSON, REST, Jersey가 갈 길이 멀다고 생각한다. 사용하기 가볍고 사용하기 쉽다. –