Mostrar Mensajes

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - arezong

Pages: [1] 2 3
1
Java JSE / Re: Consumir web service
« on: Octubre 13, 2013, 11:45:43 pm »
Haaaaaaaaaa, era una tontera !!

Code: [Select]
public final String NAMESPACE = "http://services.tryme.aresoft.cl/";
public final String URL = "http://192.168.1.15:8080/Tryme/Conexion?WSDL";
public final String SOAP_ACTION = "http://services.tryme.aresoft.cl/login";
public final String METHOD_NAME = "login";

el soapAction estaba mal :(

ahora funciona !!

Saludos chui, gracias

2
Java JSE / Re: Consumir web service
« on: Octubre 13, 2013, 10:25:35 pm »
Asi es, al principio no me aparecia el SoapOperation en el wsdl, buscando por ahí encontré que se podia definir por anotaciones y lo hice, pero aún así no funciona, la clase java que genera el wsdl tiene otros metodos que no los incluí acá, pero que se ven en el WSDL....
Tambien... antes de usar la v3.0.0 de ksoap, estaba con la 2.algo y me arrojaba otra exception en el lado de android(org.xmlpull.v1.xmlpullparserexception expected end_tag ), pero me decia lo mismo en el lado del servidor (received ws-i bp non-conformant unquoted soapaction http header: ) buscando por ahí, algunos decian que era la version de ksoap, la cambie a la 3.0.0, pero sigue sin andar... tambien se dice que hay que encerrar el SoapAction entre comillas de esta forma: " \" + soapaction + \" " , pero tampoco me anda así....

bueno chui gracias por responder, sigo buscando información.
Si se te ocurre algo, quedo atento !

Edit : puse la versión 3.0 RC4 de ksoap2 y me arroja lo siguiente :

Code: [Select]
soapfault = No se ha encontrado el método de distribución de {http://services.tryme.aresoft.cl}login
Saludos.

3
Java JSE / Re: Consumir web service
« on: Octubre 13, 2013, 08:43:55 am »
He vuelto por aca.
No quise abrir otro post, ya que esto tiene relacion con lo mismo...

Despues de probar que las llamadas a WS las generaba correctamente desde android con la libreria ksoap2,  me decidí a cambiar mi servidor, dejé el tomcat e instalé glassfish.
El tema es que genero los WS desde eclipse con las ayuda de JAX-WS, los pruebo desde otra maquina con el  ?Tester que proveé Glassfish...Todo OK hasta aquí, el problema se presenta en android al llamar al WS.

Este es mi WSDL

Code: [Select]
<!--
 Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.2.0-1 (tags/2.2.0u1-7139; 2012-06-02T10:55:19+0000) JAXWS-RI/2.2.6-2 JAXWS/2.2 svn-revision#unknown.
-->
<!--
 Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Metro/2.2.0-1 (tags/2.2.0u1-7139; 2012-06-02T10:55:19+0000) JAXWS-RI/2.2.6-2 JAXWS/2.2 svn-revision#unknown.
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://services.tryme.aresoft.cl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://services.tryme.aresoft.cl/" name="Conexion">
<types>
<xsd:schema>
<xsd:import namespace="http://services.tryme.aresoft.cl/" schemaLocation="http://win-dun0fobql7q:8080/Tryme/Conexion?xsd=1"/>
</xsd:schema>
</types>
<message name="getUsuarioById">
<part name="parameters" element="tns:getUsuarioById"/>
</message>
<message name="getUsuarioByIdResponse">
<part name="parameters" element="tns:getUsuarioByIdResponse"/>
</message>
<message name="login">
<part name="parameters" element="tns:login"/>
</message>
<message name="loginResponse">
<part name="parameters" element="tns:loginResponse"/>
</message>
<message name="addUsuario">
<part name="parameters" element="tns:addUsuario"/>
</message>
<message name="addUsuarioResponse">
<part name="parameters" element="tns:addUsuarioResponse"/>
</message>
<portType name="Conexion">
<operation name="getUsuarioById">
<input wsam:Action="http://services.tryme.aresoft.cl/Conexion/getUsuarioByIdRequest" message="tns:getUsuarioById"/>
<output wsam:Action="http://services.tryme.aresoft.cl/Conexion/getUsuarioByIdResponse" message="tns:getUsuarioByIdResponse"/>
</operation>
<operation name="login">
<input wsam:Action="loginAction" message="tns:login"/>
<output wsam:Action="http://services.tryme.aresoft.cl/Conexion/loginResponse" message="tns:loginResponse"/>
</operation>
<operation name="addUsuario">
<input wsam:Action="http://services.tryme.aresoft.cl/Conexion/addUsuarioRequest" message="tns:addUsuario"/>
<output wsam:Action="http://services.tryme.aresoft.cl/Conexion/addUsuarioResponse" message="tns:addUsuarioResponse"/>
</operation>
</portType>
<binding name="ConexionPortBinding" type="tns:Conexion">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getUsuarioById">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="login">
<soap:operation soapAction="loginAction"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="addUsuario">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="Conexion">
<port name="ConexionPort" binding="tns:ConexionPortBinding">
<soap:address location="http://win-dun0fobql7q:8080/Tryme/Conexion"/>
</port>
</service>
</definitions>


Esta es parte de la clase Java que genera el WS

Code: [Select]
@WebService(serviceName = "Conexion")
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
public class Conexion {
private Logger logger = Logger.getLogger(getClass().getName());

UsuariosOperation us;

@WebMethod(action = "loginAction",operationName = "login")
public String login(@WebParam(name = "usuario")String uss, @WebParam(name = "password")String pass){

BasicConfigurator.configure();
logger.debug("***metodo login***");
us = new UsuariosOperation();
List usuarios = us.getAllUsuarios();
Iterator it = usuarios.iterator();
while (it.hasNext()){
Usuario us = (Usuario)it.next();
if(us.getUsuarioNombre().equals(uss) &&
us.getUsuarioPassword().equals(pass)){

return "correcto";
}
}
return "incorrecto";
}
}


El codigo android es el siguiente:

Code: [Select]

        public final String NAMESPACE = "http://services.tryme.aresoft.cl";
public final String URL = "http://192.168.1.15:8080/Tryme/Conexion?WSDL";
public final String METHOD_NAME = "login";
public final String SOAP_ACTION = "loginAction";

public void login() {

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    PropertyInfo usuario = new PropertyInfo();
    usuario.setName("usuario");
    usuario.setValue(uss);
    usuario.setType(String.class);
    request.addProperty(usuario);
   

    PropertyInfo password = new PropertyInfo();
    password.setName("password");
    password.setValue(pass);
    password.setType(String.class);
    request.addProperty(password);
   
   
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

    try {
        androidHttpTransport.call(SOAP_ACTION, envelope);
        SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
        //SoapObject resultsRequestSOAP=(SoapObject)envelope.bodyIn;
        respuesta = response.toString();
        Log.i(TAG, respuesta);

    }
    catch (SoapFault fault) {
            Log.v("TAG", "soapfault = "+fault.getMessage());

        }
    catch (ConnectException e) {
    Log.i(TAG, "ConnectException en metodo login...");
    //Toast.makeText(LoginActivity.this, "Error al conectarse al servidor",Toast.LENGTH_LONG).show();
    }
    catch (SocketException e) {
    Log.i(TAG, "SocketException en metodo login...");
    //Toast.makeText(LoginActivity.this, "Error al conectarse al servidor",Toast.LENGTH_LONG).show();
    e.printStackTrace();
    }
    catch (Exception e) {
    Log.i(TAG, "Otra Exception en metodo login...");
    e.printStackTrace();
    }
}


La app android me arroja esto :

Code: [Select]
java.io.ioexception http request failed http status 500
El log del servidor me arroja esto :

Code: [Select]
received ws-i bp non-conformant unquoted soapaction http header: loginAction
Me he pasado toda la tarde buscando informacion del error, y no logré dar con la solución.
Estoy utilizando la versión 3.0.0 de ksoap2 (whit dependencies).

Saludos a todos y gracias :D

4
Java JSE / Re: Consumir web service
« on: Septiembre 19, 2013, 12:31:32 pm »
Muchas gracias chui, ahora se ejecuta correctamente y recibo la respuesta del WS.

Saludos.

5
Java JSE / Consumir web service
« on: Septiembre 18, 2013, 11:54:45 pm »
Hola a todos nuevamente...

Estoy tratando de consumir un web services desde andrid con la libreria ksoap2, el web services fue creado por mi (con eclipse y apache axis2)y está corriendo en otra maquina dentro de mi red local.
Si entro a http://192.168.1.21:8080/Test/services/Login?wsdl desde cualquier maquina en red, veo lo siguiente.

Code: [Select]
<wsdl:definitions targetNamespace="http://ws.apache.org/axis2"><wsdl:documentation>
Please Type your service description here
</wsdl:documentation><wsdl:types><xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://ws.apache.org/axis2"><xs:element name="login"><xs:complexType><xs:sequence><xs:element minOccurs="0" name="usuario" nillable="true" type="xs:string"/><xs:element minOccurs="0" name="password" nillable="true" type="xs:string"/></xs:sequence></xs:complexType></xs:element><xs:element name="loginResponse"><xs:complexType><xs:sequence><xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/></xs:sequence></xs:complexType></xs:element></xs:schema></wsdl:types><wsdl:message name="loginRequest"><wsdl:part name="parameters" element="ns:login"/></wsdl:message><wsdl:message name="loginResponse"><wsdl:part name="parameters" element="ns:loginResponse"/></wsdl:message><wsdl:portType name="LoginPortType"><wsdl:operation name="login"><wsdl:input message="ns:loginRequest" wsaw:Action="urn:login"/><wsdl:output message="ns:loginResponse" wsaw:Action="urn:loginResponse"/></wsdl:operation></wsdl:portType><wsdl:binding name="LoginSoap11Binding" type="ns:LoginPortType"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><wsdl:operation name="login"><soap:operation soapAction="urn:login" style="document"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding name="LoginSoap12Binding" type="ns:LoginPortType"><soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><wsdl:operation name="login"><soap12:operation soapAction="urn:login" style="document"/><wsdl:input><soap12:body use="literal"/></wsdl:input><wsdl:output><soap12:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:binding name="LoginHttpBinding" type="ns:LoginPortType"><http:binding verb="POST"/><wsdl:operation name="login"><http:operation location="login"/><wsdl:input><mime:content type="application/xml" part="parameters"/></wsdl:input><wsdl:output><mime:content type="application/xml" part="parameters"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="Login"><wsdl:port name="LoginHttpSoap11Endpoint" binding="ns:LoginSoap11Binding"><soap:address location="http://192.168.1.21:8080/Test/services/Login.LoginHttpSoap11Endpoint/"/></wsdl:port><wsdl:port name="LoginHttpSoap12Endpoint" binding="ns:LoginSoap12Binding"><soap12:address location="http://192.168.1.21:8080/Test/services/Login.LoginHttpSoap12Endpoint/"/></wsdl:port><wsdl:port name="LoginHttpEndpoint" binding="ns:LoginHttpBinding"><http:address location="http://192.168.1.21:8080/Test/services/Login.LoginHttpEndpoint/"/></wsdl:port></wsdl:service></wsdl:definitions>

Mi pregunta es cuales serían el  NAMESPACE, URL, SOAP_ACTION, METHOD_NAME de este servicio, para poder consumirlo en una app android con la libreria ksoap2.

Saludos a todos.

6
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 25, 2013, 12:16:57 pm »
Hola chuidiang:

Ayer despues de postear me puse a probar hacer esto:
Code: [Select]
public static boolean login(String usser, String pass){

Peticion p = new Peticion("login",usser,pass);
ClienteSocket c= new ClienteSocket(p);

try{
Thread.sleep(5000);
if(isLogin){
usuario = usser;
return true;
}
}
catch(Exception e){
e.printStackTrace();
}
return false;
}
Efectivamente funciona, se recive la respuesta del server antes que se ejecute la instruccion siguiente pero
para mi sorpresa :D descubrí que desde el servidor procesaba y enviaba bien la respuesta del login( true o false cuando correspondiese), pero del lado del cliente siempre recibia un true.

Code: [Select]
public void run() {
Log.i("AndVen", "entré al run() de ClienteSocket");

try {
if(pet.getTipoPeticion().equals("login")){
login = false;
socket = new Socket("192.168.1.3",7777);
dataOutput = new DataOutputStream(socket.getOutputStream());
peticion = new ObjectOutputStream(dataOutput);
peticion.writeObject(pet);
dataInput = new DataInputStream(socket.getInputStream());
//respuesta = new ObjectInputStream(dataInput);
login = dataInput.readBoolean();   // esto siempre dá true...
Conexion.isLogin = login;
  Log.i("AndVen", "El server me envio "+login);
  //socket.close();
}
}

}

Existe alguna forma de poder bloquear o sincronizar la variable estatica Conexion.isLogin ??
Es un lio trabajar con socket, pero es parte del aprendizaje...

P.D. Hoy no he tenido mucho tiempo, mañana me toca examen de PL/SQL así que me prepararé para ello xD

Saludos chui...

7
Hola:

si usas el Swing Designer de eclipse, le das click derecho al botón y te vas a la opcion: Add event handler / action / actionPerformed.
Y dentro del codigo que te genera, escribes las lineas necesarias para ejecutar lo que quieres que haga cuando se presiona el botón.

Saludos.

8
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 24, 2013, 07:54:29 am »
Hola chuidiang:

Lo que pasa es que android no permite ejecutar operaciones de red en el hilo principal; arroja una NetworkOnMainThreadException
la documentacion de android dice que hay que hacer estas operaciones sobre otro hilo y recomienda hacerlo dentro de una clase privada que extienda de AsyncTask , pero de ambas formas se ejecuta la instrucion
Code: [Select]
if(c.isLogin()){
usuario = usser;
return true;
}
else return false;

antes que se reciba la respuesta desde el servidor.

Me tocará seguir investigando.

Saludos y gracias.

9
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 23, 2013, 01:23:00 pm »
Muchas gracias por todo chuidiang, he conseguido enviar y recibir los objetos correctamente.Esto fue la clave
Quote
Esta llamada new ObjectInputStream (socket.getInputStream()); se queda bloqueada hasta que reciba algo del otro lado a través de un ObjectOutputStream. Para que continue, debes enviar algo desde el otro sitio.

Solo falta el tema de la sincronización en el cliente android para que espere la respuesta del servidor antes de hacer nada...

Code: [Select]
public static boolean login(String usser, String pass){

Peticion p = new Peticion("login",usser,pass);
ClienteSocket c= new ClienteSocket(p);
Log.i("AndVen","para loguear el estado es : "+c.isLogin()); // esto me devuelve false , debe ser porque la linea anterior se ejecuta en un hilo aparte
if(c.isLogin()){
usuario = usser;
return true;
}
else return false;
}

De que forma podria hacerlo para que ese "if" espere a que termine de ejecutarse todo lo que hace  ClienteSocket c= new ClienteSocket(p); ??
Una pista... yo me encargo de investigar.
Gracias denuevo por todo.

Saludos.

P.D. se me pasó la hora volando probando código , solo dormiré 5 horas xD, mañana seguiré...

10
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 23, 2013, 09:54:17 am »
chuidiang:

modifiqué lo que me comentabas, pero efectivamente no está entrando al metodo run(), el programa no pasa de estas lineas :

Code: [Select]
            peticiones = new ObjectInputStream (socket.getInputStream());
            respuestas = new ObjectOutputStream(socket.getOutputStream());

Creo que el problema está en el cliente, te dejo el código (basado tambien en tu ejemplo de socket con hilos):

Code: [Select]
import android.util.Log;

public class ClienteSocket implements Runnable{

    private DataInputStream dataInput;
    private DataOutputStream dataOutput;
private Socket socket;
private ObjectInputStream respuesta;
private ObjectOutputStream peticion;

private Peticion pet;

public ClienteSocket(Peticion p){
try {
pet = p;
            Thread hilo = new Thread(this);
            hilo.start();
}
catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void run() {
// TODO Auto-generated method stub
try {
Log.i("AndVen", "entre al metodo run");
socket = new Socket("192.168.1.3",7777);
Log.i("AndVen", "cree el socket");
dataInput = new DataInputStream(socket.getInputStream());
                        dataOutput = new DataOutputStream(socket.getOutputStream());
                        respuesta = new ObjectInputStream(dataInput);
                        peticion = new ObjectOutputStream(dataOutput);
peticion.writeObject(pet);
}
catch (IOException e) {
e.printStackTrace();
}


}
}


Saludos chuidiang y disculpa las molestias :D

11
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 22, 2013, 07:51:39 am »
Hola denuevo chuidiang:

He probado lo que se decia en los comentarios anteriores, con unas cuantas modificaciones, en vez de enviar un ArrayList con la peticion, me creé una Clase para ello que implementa Serializable...
Me he inspirado en tu ejemplo de socket con hilos para recibir las peticiones en el server, pero al parecer nunca ejecuta el codigo que esta en el metodo "run()",
a continuacion el código que tengo:

Code: [Select]
public class Servidor {
   
    public Servidor() {
        try {
            ServerSocket socketServidor = new ServerSocket(7777);
            System.out.println("Servidor corriendo en el puerto " +socketServidor.getLocalPort());

            while (true)
            {
              Socket cliente = socketServidor.accept();
              Runnable nuevoCliente = new HiloDeCliente(cliente);
              Thread hilo = new Thread(nuevoCliente);
              hilo.start();
            }
        } catch (IOException ex) {
            Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}


Code: [Select]

public class HiloDeCliente implements Runnable{
   
    private Socket socket;
    private DataInputStream dataInput;
    private DataOutputStream dataOutput;
    private ObjectInputStream peticiones;
    private ObjectOutputStream respuestas;
   
    public HiloDeCliente(Socket socket){
        this.socket = socket;
        try{
            System.out.println("Se ha recibido el cliente : " + socket.getInetAddress());
            dataInput = new DataInputStream(socket.getInputStream());
            dataOutput = new DataOutputStream(socket.getOutputStream());
           
            peticiones = new ObjectInputStream (socket.getInputStream());
            respuestas = new ObjectOutputStream(socket.getOutputStream());
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
    @Override
    public void run() {
        try{
            while (true){
                if(peticiones.readObject() instanceof Peticion){
                    Peticion pet = (Peticion) peticiones.readObject();
                    String tipoPeticion = pet.getTipoPeticion();
                   
                    switch (tipoPeticion){
                        case "login":
                            System.out.println("Procesé el login " );
                            if(Consultas.login(pet.getPrimerParametro(), pet.getSegundoParametro())){
                                dataOutput.writeBoolean(true);
                            }
                            else dataOutput.writeBoolean(false);
                            break;
                           
                        case "getProductos":
                            //Devolver productos
                            break;
                    }
                }
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
}

Cuando ejecuto el login en la app de android, lo hago sin problemas, el servidor lo recibe ya que me muestra : Se ha recibido el cliente : 192.168.1.13
Pero al parecer jamas entra en el metodo run() de HiloDeCliente, ¿que me está faltando?

Saludos y gracias nuevamente.

12
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 22, 2013, 12:03:32 am »
Muchas gracias chuidiang.
Apenas tenga un tiempo me pongo a escribir código y probar.
Gracias nuevamente por la orientación.

Saludos

13
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 21, 2013, 08:09:55 am »
Hola chuidiang:

Estube mirando ejemplos y codigos por ahí y veo que al igual como tu mencionas en la respuesta anterior, es común enviar un tipo de "id" en la petición que hace el cliente.
En ese caso, que tan elegante(como tu dices) sería hacer algo como esto?


Por el lado del cliente (y siguiendo el ejemplo del login) :

Code: [Select]

public boolean login (String usser, String pass){

    String tipoPeticion = "login";
    String loginData = usser + "/" + pass ; // usaria el caracter "/" para separar el usuario del pass
    ArrayList arrLogin =  new ArrayList();
    arrLogin.add(tipoPeticion );
    arrLogin.add(loginData );
    ObjectOutputStream.writeObject(arrLogin);
    boolean estadoLogin = dataInput.readBoolean()
    if(estadoLogin){
        return true;
    }
    else return false;
}

Y por el lado del servidor :


Code: [Select]
ObjectInputStream peticiones = new ObjectInputStream (cliente.getInputStream());
DataOutputStream buffer = new DataOutputStream (cliente.getOutputStream());

ArrayList peticion = (ArrayList) peticiones.readObject();
   
    String tipoPeticion = (String)peticion.get(0);
    String extra = (String)peticion.get(1);
    switch tipoPeticion
        case "login"
            if(UnaClase.Login(extra)){ //metodo que recibe la cadena de texto que envia el cliente, la separa en nombre y pass y comprueba si es correcto en la base de datos
            buffer.writeBoolean(true);
            }
            else buffer.writeBoolean(false);
            break;
        case "getProductos"
             ArrayList listProductos = UnaClase.getProductos();
             ObjectOutputStream.writeObject(listProductos);
             break;
        case //para todos las posibles peticiones del cliente

De esta forma podria pasarle como "extra" un segundo parametro, por ejemplo si quisiera obtener los productos que pertenecen a cierta categoria, le pasaria la categoría en cuestión por el campo "extra"

Que opinas acerca de esto?? , está bien definido?

Ahora mismo estoy en el trabajo, por lo cual no puedo probar si funciona.

Saludos.

14
Java JSE / Re: Comunicar 2 aplicaciones
« on: Mayo 21, 2013, 01:37:47 am »
Hola chui, gracias por responder ...
Si he mirado los tutoriales que están en la web y de otros sitios también.
He podido comunicar las dos aplicaciones, pero lo que no logro hacer es poder diferenciar en el lado del servidor que es lo que el cliente le solicita.
Tengo un sistema de login en la app...que envía el usuario y la contraseña al servidor , el servidor le solicita a hibernate la lista de usuarios y compara, si coincide devuelve true.
Lo que no me queda claro es : como diferenciar en el Server cual es el usuario y la pass(enviados como texto).
 y como diferenciar en el Server la acción que solicita el cliente.

Gracias nuevamente chui.  Saludos.

15
Java JSE / Comunicar 2 aplicaciones
« on: Mayo 20, 2013, 06:46:34 am »
Hola a todos:

Estoy desarrollando una aplicacion cliente/servidor.
El servidor es una aplicacion de escritorio con hibernate para el acceso a los datos, el cliente es una app en android que solicita los datos al servidor y solo se limita a presentarlos.
El problema es que no sé de que forma hacer esta solicitud de datos, creo que lo correcto es utilizar socket.
Por ejemplo, tengo una tabla clientes , ejecuto la llamada en hibernate para que me devuelva una lista con los clientes.... hasta ahi bien, ahora.... como envio esos clientes cuando la app de android haga esa solicitud.
Tambien en la app android tengo un sistema de login, ¿como envio los datos del login (usuario, pass) al servidor y que este me devuelva si el login está correcto o no?, ¿ como diferencio en el servidor , que datos me envia el cliente, y que solicitudes le hace al servidor?

Creo que no logro entender bien como trabajan los socket.

Saludos.

Pages: [1] 2 3
ey