Jboss-fuse-rest-web-services

提供:Dev Guides
移動先:案内検索

JBoss Fuse-REST Webサービス

まず、RESTはRepresentational State Transferの略です。 これは、ほとんどの場合HTTPであるステートレスでキャッシュ可能なクライアント/サーバープロトコルに基づいてWebサービスを開発する方法です。

REST Webサービスは、HTTP要求を使用して、ネットワークからデータを送信、取得、削除します。

CXFを使用したREST開発

シンプルなMavenクイックスタートプロジェクトを作成する

mvn archetype:generate
-DgroupId = com.tuts.abhinav
-DartifactId = rest-service
-DarchetypeArtifactId = maven-archetype-quickstart
-DinteractiveMode = false

依存関係を追加する

<dependency>
   <groupId>org.apache.servicemix.specs</groupId>
   <artifactId>org.apache.servicemix.specs.jsr311-api-1.1.1</artifactId>
   <version>1.9.0</version>
   <scope>provided</scope>
</dependency>

<dependency>
   <groupId>org.apache.servicemix</groupId>
   <artifactId>servicemix-http</artifactId>
   <version>2013.01</version>
</dependency>

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.16</version>
</dependency>

ビルド命令を追加

<build>
   <defaultGoal>install</defaultGoal>
   <plugins>
      <plugin>
         <groupId>org.apache.felix</groupId>
         <artifalctId>maven-bundle-plugin</artifactId>
         <version>2.3.4</version>
         <extensions>true</extensions>

         <configuration>
            <instructions>
               <Bundle-SymbolicName>rest-example-database-post-method
                  </Bundle-SymbolicName>
               <Import-Package>* </Import-Package>
            </instructions>
         </configuration>

      </plugin>
   </plugins>
</build>

ヒューズプラグインリポジトリの追加

<pluginRepositories>
   <pluginRepository>
      <id>fusesource.m2</id>
      <name>FuseSource Community Release Repository</name>
      <url>http://repo.fusesource.com/nexus/content/repositories/releases</url>
      <snapshots>
         <enabled>false</enabled>
      </snapshots>

      <releases>
         <enabled>true</enabled>
      </releases>
   </pluginRepository>
<pluginRepositories>

リポジトリを追加する

<repositories>
   <repository>
      <id>fusesource.m2</id>
      <name>FuseSource Community Release Repository</name>
      <url>http://repo.fusesource.com/nexus/content/repositories/releases</url>
      <snapshots>
         <enabled>false</enabled>
      </snapshots>

      <releases>
         <enabled>true</enabled>
      </releases>

   </repository>

   <repository>
      <id>fusesource.ea</id>
      <name>FuseSource Community Early Access Release Repository</name>
      <url>http://repo.fusesource.com/nexus/content/groups/ea</url>
      <snapshots>
         <enabled>false</enabled>
      </snapshots>
      <releases>
         <enabled>true</enabled>
      </releases>
   </repository>

</repositories>

サービスクラスの作成

com/tuts/の下にクラスUserService.javaを作成します

package com.tuts;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/UserService_1")
public class UserService {
   @GET
   @Path("/get_data")
   @Produces(MediaType.APPLICATION_JSON)

   public String getUser() {
      String reponse = "This is standard response from REST";
      return reponse;
   }
}

Blueprint.xmlを作成する

/src/main/resources/OSGI-INF/blueprint blueprint.xmlの下にblueprint.xmlを作成します

<?xml version = "1.0" encoding = "UTF-8"?>
<blueprint xmlns = "http://www.osgi.org/xmlns/blueprint/v1.0.0"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:jaxrs = "http://cxf.apache.org/blueprint/jaxrs"
   xsi:schemaLocation = "http://www.osgi.org/xmlns/blueprint/v1.0.0
   http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
   http://cxf.apache.org/blueprint/jaxrs
   http://cxf.apache.org/schemas/blueprint/jaxrs.xsd">

   <jaxrs:server id = "service" address = "/users">
      <jaxrs:serviceBeans>
         <ref component-id = "userService"/>
      </jaxrs:serviceBeans>
   </jaxrs:server>

   <bean id = "userService" class = "com.tuts.UserService"/>
</blueprint>

FuseにRestサービスをインストールする

install -s mvn:com.tuts.abhinav/rest-service/1.0-SNAPSHOT

バンドルに登録済みWebサービスがあるかどうかを確認します

URLを開く http://localhost:8181/cxf

登録済みWebサービス

Webサービスのテスト

URLを開く http://localhost:8181/cxf/users12/UserService_1/get_data

Localhost CXF