servidor tomcat JSON cliente Python
Vamos a implementar un servicio tomcat , Python
Para programa un servidor tomcat 9.0 inicialmente debemos descargar las librerias
de Gson.jar
Las cuales debemos instalar en la carpeta lib de nuestra distribución de apache-tomcat.
Luego debemos crear un POJO de la clase queremos queremos servir desde tomcat.
En este voy a usar la clase:
en WEB-INF/classes/beans/InfoBean.java
//*******************************************************
// Info Bean
//*******************************************************
package beans ;
/* Bean para asignacion de Varibles de SThor
06/03/2018
*/
import java.util.* ;
public class InfoBean
{
private String login = "" ;
private String passwd = "" ;
private String idNFC = "" ;
private String dispositivo = "" ;
private String saludo = "" ;
private String status = "" ;
// Info
public InfoBean()
{
}
public void setLogin(String _login)
{
login = _login ;
}
public String getLogin()
{
return (login) ;
}
public void setPasswd(String _passwd)
{
passwd = _passwd ;
}
public String getPasswd()
{
return (passwd) ;
}
public void setIdNFC(String _idNFC)
{
idNFC = _idNFC ;
}
public String getIdNFC()
{
return (idNFC) ;
}
public void setDispositivo(String _dispositivo)
{
dispositivo = _dispositivo ;
}
public String getDispositivo()
{
return (dispositivo) ;
}
public void setSaludo(String _saludo)
{
saludo = _saludo ;
}
public String getSaludo()
{
return (saludo) ;
}
public void setStatus(String _status)
{
status = _status ;
}
public String getStatus()
{
return (status) ;
}
}
(END)
-----------------------------------------------------------------------------------------------
Luego programo el servicio en tomcat
1. Importo las librerias Gson , que debí haber instalado inicialmente
en la carpeta /lib de tomcat
2. Llamo el Bean, que define anteriormente denominado InfoBean
es muy importante tener claro que este bin es el que permite crear
el objeto que posteriormente publicaremos con los métodos del Gson.
asignado los valores a json , mediante los SET del bean que vamos
a implementar
3. Recojo o asigno los parámetros que voy asignar a JSON en este
la mayoría vienen de un request y uno es asignado directamente
status = "ok"
4. Asigno los valores mediante SET al objeto gson
En este ejercicio el parametro setPrettyPrinting() es
simplemente demostrativo para permitir ver el contenido
del objeto gson
5. Definimos una varible string json para almacenar el objeto gson
con casting para poder publicarlo de forma sencilla
mediante out.println()
En general el trabajo pesado de la aplicacion lo hace el bean
en gson.toJson(infoBean);
donde e objeto gson toma los parametros almacenados en la clase
infoBean.
//***********************************************************
//
//***********************************************************
<%@ page session="true"
import = "com.google.gson.Gson"
import = "com.google.gson.GsonBuilder"
%>
<jsp:useBean id="infoBean" scope="session" class="beans.InfoBean" />
<%
String login = request.getParameter("login") ;
String passwd = request.getParameter("passwd") ;
String idNFC = request.getParameter("id") ;
String dispositivo = request.getParameter("dispositivo") ;
String status = "ok" ;
infoBean.setLogin(login);
infoBean.setPasswd(passwd);
infoBean.setIdNFC(idNFC);
infoBean.setDispositivo(dispositivo);
infoBean.setSaludo("Bienvenido:" + idNFC);
infoBean.setStatus(status);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(infoBean);
out.println(json);
%>
-------------------------------------------------------------------------------------------------------------
Ahora programamos el cliente Python.
Debemos tener instaladas las librería necesarias json, ademas
httplib,urllib, request , la versión 2.7 de Python que estos utilizando
solo me pidió instalar las json
En Centos : yum install json*
En Ubuntu : apt-get install json*
----------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf8 -*-
import httplib,urllib
import json
import requests
# Definimos parámetros de prueba enviados al servidor el cual
# debe devolverlos acompañados de un status = ok
# que definimos en el servidor.
URL = "http://miservidor:8080/respuesta"
LOGIN = "ADMOR"
PASSWD = "ADMOR"
DISPOSITIVO = "INGRESO 1"
UID = "1234"
parametros = {'login': LOGIN,'passwd': PASSWD,'id': UID,'dispositivo': DISPOSITIVO }
r = requests.get(URL, params=parametros)
r.headers['content-type']
respuesta = r.json()
mensaje = respuesta["status"]
status = r.status_code
print "status:" + str(status)
if status != 200:
print "No encontro pagina o no se pudo conectar
else:
print respuesta
print "Usuario autorizado " + mensaje
if mensaje == "ok":
print "Usuario autorizado" + mensaje
else:
print "Usuario rechazado"
-------------------------------------------------------------------------------------------------
Esta es la patalla de salida de este ejercicio.
status:200
{u'status': u'ok', u'saludo': u'Bienvenido:1234', u'passwd': u'ADMOR', u'login': u'ADMOR', u'idNFC': u'1234', u'dispositivo': u'INGRESO 1'}
Usuario autorizado ok
Para programa un servidor tomcat 9.0 inicialmente debemos descargar las librerias
de Gson.jar
Las cuales debemos instalar en la carpeta lib de nuestra distribución de apache-tomcat.
Luego debemos crear un POJO de la clase queremos queremos servir desde tomcat.
En este voy a usar la clase:
en WEB-INF/classes/beans/InfoBean.java
//*******************************************************
// Info Bean
//*******************************************************
package beans ;
/* Bean para asignacion de Varibles de SThor
06/03/2018
*/
import java.util.* ;
public class InfoBean
{
private String login = "" ;
private String passwd = "" ;
private String idNFC = "" ;
private String dispositivo = "" ;
private String saludo = "" ;
private String status = "" ;
// Info
public InfoBean()
{
}
public void setLogin(String _login)
{
login = _login ;
}
public String getLogin()
{
return (login) ;
}
public void setPasswd(String _passwd)
{
passwd = _passwd ;
}
public String getPasswd()
{
return (passwd) ;
}
public void setIdNFC(String _idNFC)
{
idNFC = _idNFC ;
}
public String getIdNFC()
{
return (idNFC) ;
}
public void setDispositivo(String _dispositivo)
{
dispositivo = _dispositivo ;
}
public String getDispositivo()
{
return (dispositivo) ;
}
public void setSaludo(String _saludo)
{
saludo = _saludo ;
}
public String getSaludo()
{
return (saludo) ;
}
public void setStatus(String _status)
{
status = _status ;
}
public String getStatus()
{
return (status) ;
}
}
(END)
-----------------------------------------------------------------------------------------------
Luego programo el servicio en tomcat
1. Importo las librerias Gson , que debí haber instalado inicialmente
en la carpeta /lib de tomcat
2. Llamo el Bean, que define anteriormente denominado InfoBean
es muy importante tener claro que este bin es el que permite crear
el objeto que posteriormente publicaremos con los métodos del Gson.
asignado los valores a json , mediante los SET del bean que vamos
a implementar
3. Recojo o asigno los parámetros que voy asignar a JSON en este
la mayoría vienen de un request y uno es asignado directamente
status = "ok"
4. Asigno los valores mediante SET al objeto gson
En este ejercicio el parametro setPrettyPrinting() es
simplemente demostrativo para permitir ver el contenido
del objeto gson
5. Definimos una varible string json para almacenar el objeto gson
con casting para poder publicarlo de forma sencilla
mediante out.println()
En general el trabajo pesado de la aplicacion lo hace el bean
en gson.toJson(infoBean);
donde e objeto gson toma los parametros almacenados en la clase
infoBean.
//***********************************************************
//
//***********************************************************
<%@ page session="true"
import = "com.google.gson.Gson"
import = "com.google.gson.GsonBuilder"
%>
<jsp:useBean id="infoBean" scope="session" class="beans.InfoBean" />
<%
String login = request.getParameter("login") ;
String passwd = request.getParameter("passwd") ;
String idNFC = request.getParameter("id") ;
String dispositivo = request.getParameter("dispositivo") ;
String status = "ok" ;
infoBean.setLogin(login);
infoBean.setPasswd(passwd);
infoBean.setIdNFC(idNFC);
infoBean.setDispositivo(dispositivo);
infoBean.setSaludo("Bienvenido:" + idNFC);
infoBean.setStatus(status);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(infoBean);
out.println(json);
%>
-------------------------------------------------------------------------------------------------------------
Ahora programamos el cliente Python.
Debemos tener instaladas las librería necesarias json, ademas
httplib,urllib, request , la versión 2.7 de Python que estos utilizando
solo me pidió instalar las json
En Centos : yum install json*
En Ubuntu : apt-get install json*
En la variable respuesta queda el objeto json que llega desde el servidor, y en mensaje asigno el valor del campo status de ese objeto, observar la forma como se accesa cada campo del objeto, donde se hace un llamado del objeto json y se accede a sus campos como un campo de un arreglo, invocando el nombre del campo requerido.
----------------------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: utf8 -*-
import httplib,urllib
import json
import requests
# Definimos parámetros de prueba enviados al servidor el cual
# debe devolverlos acompañados de un status = ok
# que definimos en el servidor.
URL = "http://miservidor:8080/respuesta"
LOGIN = "ADMOR"
PASSWD = "ADMOR"
DISPOSITIVO = "INGRESO 1"
UID = "1234"
parametros = {'login': LOGIN,'passwd': PASSWD,'id': UID,'dispositivo': DISPOSITIVO }
r = requests.get(URL, params=parametros)
r.headers['content-type']
respuesta = r.json()
mensaje = respuesta["status"]
status = r.status_code
print "status:" + str(status)
if status != 200:
print "No encontro pagina o no se pudo conectar
else:
print respuesta
print "Usuario autorizado " + mensaje
if mensaje == "ok":
print "Usuario autorizado" + mensaje
else:
print "Usuario rechazado"
-------------------------------------------------------------------------------------------------
Esta es la patalla de salida de este ejercicio.
status:200
{u'status': u'ok', u'saludo': u'Bienvenido:1234', u'passwd': u'ADMOR', u'login': u'ADMOR', u'idNFC': u'1234', u'dispositivo': u'INGRESO 1'}
Usuario autorizado ok
Comentarios
Publicar un comentario