JBoss 퓨즈-Apache CXF

이 장에서는 Apache CXF가 무엇이며 SOAP 및 Rest 웹 서비스를 개발하는 데 어떻게 도움이 될 수 있는지에 대해 논의하겠습니다.

Apache CXF 란 무엇입니까?

Apache CXF는 SOAP 및 Rest 웹 서비스를 개발하는 데 사용할 수있는 웹 서비스 개발 프레임 워크입니다. CXF는JAX-RS and JAX-Ws 표준.

현재 가장 널리 사용되는 웹 서비스 개발 프레임 워크입니다. CXF는 현재 점차 CXF로 대체되고있는 Axis2에 대해 학습하고 개선했습니다.

CXF 대 Axis2

CXF 축 2
개량

CXF는 현재 가장 많이 사용되는 프레임 워크입니다.

Axis2보다 많이 개선 되었습니다.

Axis2는 점차 CXf로 대체되고 있습니다.

CXF에 비해 더 많은 코드가 필요합니다.

코드 필요

CXF는 Axis2에 비해 더 적은 코드를 필요로합니다.

Axis2에는 상대적으로 더 많은 코드가 필요합니다.

표준 준수

CSF는 JAX-RS 및 JAX-WS와 완전히 호환됩니다.

Axis2는 JAX-RS 및 JAX-WS와 완전히 호환되지 않습니다.

Spring과 호환

아니

프런트 엔드 분리

JAX-WS 코드에서 프런트 엔드를 깔끔하게 분리

깨끗한 분리가 제공되지 않습니다.

비누

SOAP는 Simple Object Access Protocol을 나타냅니다. 두 시스템간에 웹 서비스를 통해 구조화 된 정보를 교환하기위한 프로토콜입니다. 주로 데이터 구조화를 위해 XML에 의존하고 메시지 협상 및 전송을 위해 HTTP 또는 SMTP를 사용합니다.

SOAP 웹 서비스를 개발하는 데는 두 가지 접근 방식이 있습니다.

  • Code first −이 접근 방식에서 WSDL은 코드에서 생성됩니다.

  • Contract first − 계약에서 먼저 WSDL에서 코드가 생성됩니다.

CXF를 사용한 SOAP 개발

Maven 구성

Maven의 settings.xml에 다음 프로필을 추가합니다.

<profiles>
   <profile>
      <id>Jboss-Fuse</id>
		
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
		
      <repositories>
         <repository>
            <id>fusesource</id>
            <url>http://repo.fusesource.com/nexus/content/groups/public/</url>
            <snapshots>
               <enabled>false</enabled>
            </snapshots>
            <releases>
               <enabled>true</enabled>
            </releases>
         </repository>
      </repositories>
		
   </profile>
</profiles>

스켈레톤 생성

mvn archetype:generate
-DarchetypeGroupId = org.apache.servicemix.tooling 
-DarchetypeArtifactId = servicemix-cxf-code-first-osgi-bundle 
-DarchetypeVersion=2012.01.0.redhat-60024 
-DgroupId = org.fusesource.example 
-DartifactId = cxf-basic 
-Dversion = 1.0-SNAPSHOT

Build Web Service Project.

mvn clean install

Install web-service into Fuse using the following command.

JBossFuse:karaf@root>install -s mvn:org.fusesource.example/cxf-basic/1.0-SNAPSH

Check if bundle has registered SOQP web-service

URL 열기 http://localhost:8181/cxf

웹 서비스는 다음과 같이 나열되어야합니다.

Testing Web-Service

mvn -Pclient

INFO − 서비스 생성 {http://ws.totorials.com/} com.to 클래스의 PersonService

torials.ws.Person
Invoking getPerson...
getPerson._getPerson_personId = Guillaume
getPerson._getPerson_ssn = 000-000-0000
getPerson._getPerson_name = Guillaume
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.668 s
[INFO] Finished at: 2016-02-15T21:01:20+05:30
[INFO] Final Memory: 10M/37M
[INFO] ------------------------------------------------------------------------