Начнем с того, что REST расшифровывается как Передача представительского состояния. Это способ разработки веб-сервисов на основе кэшируемого протокола клиент-сервер без учета состояния, который в большинстве случаев является HTTP.
Веб-сервисы REST используют HTTP-запросы для публикации, получения, удаления данных из сети.
Разработка REST с использованием CXF
Создать простой проект быстрого запуска 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>
Добавить репозиторий Fuse Plugin
<PluginRepositories> <PluginRepository> <Идентификатор> fusesource.m2 </ ID> <name> Репозиторий релизов сообщества FuseSource </ name> <Url> http://repo.fusesource.com/nexus/content/repositories/releases </ url> <Моментальные снимки> <Включена> False </ включен> </ Моментальные снимки> <релизы> <Включена> True </ включено> </ Релизы> </ 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>
Создать класс обслуживания
Создайте класс UserService.java под com / tuts /
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
Создайте blueprint.xml в / src / main / resources / OSGI-INF / blueprint 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>
Установите сервис Rest в Fuse
install -s mvn:com.tuts.abhinav/rest-service/1.0-SNAPSHOT
Проверьте, есть ли в Bundle зарегистрированный веб-сервис
Открыть URL http: // localhost: 8181 / cxf
Тестовый веб-сервис
Открыть URL-адрес http: // localhost: 8181 / cxf / users12 / UserService_1 / get_data
