…
Na minha rotina profissional houve a necessidade de transportar informações de um servidor para outro, esses servidores ficavam em locais diferentes e so um deles tinha acesso ao banco de dados que no caso era ORACLE, a solução mais pratica que encontrei foi criando um serviço REST,nesse exemplo ele retorna duas strings Json de estado e cidade um exemplo bem simples de retorno, poderia ser em formato xml, separado por “;” para ser visualizado em Excel em fim N possibilidades, muito útil
imagens passo a passo …
https://drive.google.com/open?id=0B7K8qkuBiLoCNjdlQ196MG5ERlk 1
https://drive.google.com/open?id=0B7K8qkuBiLoCZ1dleGJKZjZMREU 2
https://drive.google.com/open?id=0B7K8qkuBiLoCdzNvd2tnR3FmMnM 3
https://drive.google.com/open?id=0B7K8qkuBiLoCVTB3N29lSVI3bGc 4
https://drive.google.com/open?id=0B7K8qkuBiLoCcGVRSXItbTgzc3M 5
https://drive.google.com/open?id=0B7K8qkuBiLoCZDBVaDBWM3FyT2M 6
https://drive.google.com/open?id=0B7K8qkuBiLoCcEZjNUhUN2ZSd3c 7
https://drive.google.com/open?id=0B7K8qkuBiLoCSzhRUnRkd0xxcTA 8
https://drive.google.com/open?id=0B7K8qkuBiLoCS0VZdzBvb0E0LUE 9
https://drive.google.com/open?id=0B7K8qkuBiLoCODBxbFV6amh6ZDA 10
https://drive.google.com/open?id=0B7K8qkuBiLoCYV9iVTZPU1hzaWs 11
https://drive.google.com/open?id=0B7K8qkuBiLoCMzRrQWlXTGVocGM 12
https://drive.google.com/open?id=0B7K8qkuBiLoCdHBQeVVPblBTVWc 13
https://drive.google.com/open?id=0B7K8qkuBiLoCbnlVWDViYk43SVk 14
https://drive.google.com/open?id=0B7K8qkuBiLoCcXp1Qm5SbGdwYzg 15
https://drive.google.com/open?id=0B7K8qkuBiLoCWWxySjBndmJtU2s 16
https://drive.google.com/open?id=0B7K8qkuBiLoCX1BSSXI1UVAtVTg 17
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>RESTJerseyExemplo</groupId>
<artifactId>RESTJerseyExemplo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>RESTJerseyExemplo</name>
<description>RESTJerseyExemplo</description>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<!-- COLOCAR DEPEDENCIAS A BAIXO -->
<dependencies>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19</version>
</dependency>
</dependencies>
</project>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>RESTJerseyExemplo</display-name>
<welcome-file-list>
<welcome-file>inicio.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/RESTJerseyExemplo/*</url-pattern>
</servlet-mapping>
</web-app>
exemploJon.java
package br.com.restjersey.testeWs;
import java.util.ArrayList;
import java.util.List;
/**
* @author Thiago Araujo - tjca1@hotmail.com
*/
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
import org.json.JSONException;
import org.json.JSONObject;
@Path("/servicoJson")
public class exemploJson {
@GET
@Produces("application/json")
//@Produces("application/xml")
public Response estados() throws JSONException {
List<String> list_estados = new ArrayList<String>();
JSONObject jo = new JSONObject();
///////PODERIA SER UMA CHAMADA DE BANCO USANDO ENTIDADES HIBERNATE ou jdbc etc.. O IMPORTANTE MESMO É POPULAR A LISTA APARTIR DO PARAMETRO e levar pra outro servidor!
int count = 0;
list_estados.add("sp");
while(count<30){
list_estados.add("_estado_"+count);
count++;
}
///////PODERIA SER UMA CHAMADA DE BANCO USANDO ENTIDADES HIBERNATE ou jdbc etc.. O IMPORTANTE MESMO É POPULAR A LISTA APARTIR DO PARAMETRO e levar pra outro servidor!
jo.put("est", list_estados);
String result = "" + jo;
return Response.status(200).entity(result).build();
}
///////////////////////////////////////////////
@Path("{cid}")
@GET
@Produces("application/json")
public Response cidades(@PathParam("cid") String cid) throws JSONException {
List<String> list_cid = new ArrayList<String>();
JSONObject jo = new JSONObject();
///////PODERIA SER UMA CHAMADA DE BANCO USANDO ENTIDADES HIBERNATE ou jdbc etc.. O IMPORTANTE MESMO É POPULAR A LISTA APARTIR DO PARAMETRO e levar pra outro servidor!
if(cid.equalsIgnoreCase("sp")){
int count = 0;
while(count<30){
list_cid.add(cid+"_cidade_"+count);
count++;
}
///////PODERIA SER UMA CHAMADA DE BANCO USANDO ENTIDADES HIBERNATE O IMPORTANTE MESMO É POPULAR A LISTA APARTIR DO PARAMETRO
}else{ /*....*/
list_cid.add("VAZIO");
}
////
jo.put("cids", list_cid);
String result = "" + jo;
return Response.status(200).entity(result).build();
}
}
urls para teste!
http://localhost:8181/RESTJerseyExemplo/RESTJerseyExemplo/servicoJson/
http://localhost:8181/RESTJerseyExemplo/RESTJerseyExemplo/servicoJson/sp
///////////////////////////////////
cliente em outro servidor !
package br.com.restjersey.testeWsCliente;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
/**
* @author Thiago Araujo - tjca1@hotmail.com
*
*/
public class exemploJsonCliente {
//ip ficticio(não existe !) so para demostração
private final String IP_SERVER = "200.178.175.253";
public static void main(String[] args) {
exemploJsonCliente client = new exemploJsonCliente();
client.getCidFResponse();
client.getEstadoCResponse();
}
private void getEstadoCResponse() {
try {
Client client = Client.create();
WebResource webResource2 = client.resource("http://"+IP_SERVER+"/RESTJerseyExemplo/RESTJerseyExemplo/servicoJson/");
ClientResponse response2 = webResource2.accept("application/json").get(ClientResponse.class);
if (response2.getStatus() != 200) {
throw new RuntimeException("Failed : CODIGO DO ERRO : " + response2.getStatus());
}
String output2 = response2.getEntity(String.class);
System.out.println(output2);
} catch (Exception e) {
e.printStackTrace();
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
private void getCidFResponse() {
try {
Client client = Client.create();
WebResource webResource = client.resource("http://"+IP_SERVER+"/RESTJerseyExemplo/RESTJerseyExemplo/servicoJson/sp");
ClientResponse response = webResource.accept("application/json").get(ClientResponse.class);
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : CODIGO DO ERRO : " + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println(output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
////////////////////////////////////
download projeto Eclipse
http://www.mediafire.com/download/89lrfnyisn856th/RESTJerseyExemplo.rar
Thiago Araujo - tjca1@hotmal.com
Java Standard Edition 5 Programmer Certified Professional