package com.jersey.model;
public class Message {
public long id;
public String name;
public String address;
public long getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress(){
return address;
}
public void setId(long p) {
id=p;
}
public void setName(String p) {
name=p;
}
public void setAddress(String p){
address=p;
}
}
Vamos a generar un bean de servicio.
package com.jersey.services;
import java.util.ArrayList;
import java.util.List;
import com.jersey.model.Message;
public class MessageServices {
List<Message> arr = new ArrayList<Message>();
public MessageServices(List<Message> m) {
arr = m;
}
public MessageServices() {
arr = new ArrayList<Message>();
}
public List<Message> getAllMessages() {
return arr;
}
public void addRecord(Message m) {
arr.add(m);
}
public void generateAllMessages() { if (arr.isEmpty()) { Message msg = new Message(); msg.setId(1); msg.setName("Luis"); msg.setAddress("Aqui mero"); arr.add(msg); msg = new Message(); msg.setId(2); msg.setName("Luis M"); msg.setAddress("Aqui alla"); arr.add(msg); } }
public Message getMessage(long id) {
for (Message item : arr) {
if (item.getId() == id) {
return item;
}
}
return new Message();
}
}
import java.util.ArrayList;
import java.util.List;
import com.jersey.model.Message;
public class MessageServices {
List<Message> arr = new ArrayList<Message>();
public MessageServices(List<Message> m) {
arr = m;
}
public MessageServices() {
arr = new ArrayList<Message>();
}
public List<Message> getAllMessages() {
return arr;
}
public void addRecord(Message m) {
arr.add(m);
}
public void generateAllMessages() { if (arr.isEmpty()) { Message msg = new Message(); msg.setId(1); msg.setName("Luis"); msg.setAddress("Aqui mero"); arr.add(msg); msg = new Message(); msg.setId(2); msg.setName("Luis M"); msg.setAddress("Aqui alla"); arr.add(msg); } }
public Message getMessage(long id) {
for (Message item : arr) {
if (item.getId() == id) {
return item;
}
}
return new Message();
}
}
Vamos a generar la clase para el servicio web:
package com.jersey.webservices;
import java.util.List;
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.MediaType;
import com.jersey.model.Message;
import com.jersey.services.MessageServiceSingleton;
import com.jersey.services.MessageServices;
@Path("message")
public class WebServiceMessage {
MessageServices service = MessageServiceSingleton.getInstance();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Message> getMessage() {
service.generateAllMessages();
return service.getAllMessages();
}
}
import java.util.List;
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.MediaType;
import com.jersey.model.Message;
import com.jersey.services.MessageServiceSingleton;
import com.jersey.services.MessageServices;
@Path("message")
public class WebServiceMessage {
MessageServices service = MessageServiceSingleton.getInstance();
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Message> getMessage() {
service.generateAllMessages();
return service.getAllMessages();
}
}
Crea la clase singleton MessageServiceSingleton para obtener una instancia de MessageService:
package com.jersey.services;
public class MessageServiceSingleton {
private static MessageServices instance = null;
public static MessageServices getInstance() {
if(instance == null) {
instance = new MessageServices();
}
return instance;
}
}
Correr la aplicacion en tomcat y probar desde postman con la siguiente url:
http://localhost:8080/Jersey/webapi/message
El resultado obtenido sera lo siguiente:
[
{
"address": "Aqui alla",
"id": 2,
"name": "Luis M"
},
{
"address": "Aqui alla",
"id": 2,
"name": "Luis M"
}
]
Ahora vamos a crear un metodo para obtener un solo mensaje la clase WebServiceMessage
@GET
@Path("/{messageId}/")
@Produces(MediaType.APPLICATION_JSON)
public Message getMessage(@PathParam("messageId") Long id) {
return service.getMessage(id);
}
Probamos la siguiente URL en postman, se obtendra el siguiente resultado.
http://localhost:8080/Jersey/webapi/message/1/
{
"address": "Aqui mero",
"id": 1,
"name": "Luis"
}
Ahora vamos a crear un html para probar el webservice desde angular:
<!doctype html>
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script>
angular.module('demo', []).controller(
'Hello',
function($scope, $http) {
$http.get('http://localhost:8080/Jersey/webapi/message/2')
.then(function(response) {
$scope.greeting = response.data;
});
});
</script>
</head>
<body>
<div ng-controller="Hello">
<p>El ID es : {{greeting.id}}</p>
<p>El nombre es: {{greeting.name}}</p>
<p>La direccion es: {{greeting.address}}</p>
</div>
</body>
</html>
package com.jersey.services;
public class MessageServiceSingleton {
private static MessageServices instance = null;
public static MessageServices getInstance() {
if(instance == null) {
instance = new MessageServices();
}
return instance;
}
}
Correr la aplicacion en tomcat y probar desde postman con la siguiente url:
http://localhost:8080/Jersey/webapi/message
El resultado obtenido sera lo siguiente:
[
{
"address": "Aqui alla",
"id": 2,
"name": "Luis M"
},
{
"address": "Aqui alla",
"id": 2,
"name": "Luis M"
}
]
Ahora vamos a crear un metodo para obtener un solo mensaje la clase WebServiceMessage
@GET
@Path("/{messageId}/")
@Produces(MediaType.APPLICATION_JSON)
public Message getMessage(@PathParam("messageId") Long id) {
return service.getMessage(id);
}
Probamos la siguiente URL en postman, se obtendra el siguiente resultado.
http://localhost:8080/Jersey/webapi/message/1/
{
"address": "Aqui mero",
"id": 1,
"name": "Luis"
}
Ahora vamos a crear un html para probar el webservice desde angular:
<!doctype html>
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script>
angular.module('demo', []).controller(
'Hello',
function($scope, $http) {
$http.get('http://localhost:8080/Jersey/webapi/message/2')
.then(function(response) {
$scope.greeting = response.data;
});
});
</script>
</head>
<body>
<div ng-controller="Hello">
<p>El ID es : {{greeting.id}}</p>
<p>El nombre es: {{greeting.name}}</p>
<p>La direccion es: {{greeting.address}}</p>
</div>
</body>
</html>
Para leer todos los registros y desplegarlos con angular:
<!doctype html>
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script>
angular.module('demo', []).controller(
'Hello',
function($scope, $http) {
$http.get('http://localhost:8080/Jersey/webapi/message').then(
function(response) {
$scope.greeting = response.data;
});
});
</script>
</head>
<body>
<div ng-controller="Hello">
<table>
<tr ng-repeat="x in greeting">
<td>{{ x.id }}</td>
<td>{{ x.name }}</td>
<td>{{ x.address }}</td>
</tr>
</table>
</div>
</body>
</html>
No hay comentarios:
Publicar un comentario