Problema web services en java
Publicado por Sergio (2 intervenciones) el 21/03/2007 16:51:54
Buenas!
Estoy haciendo un proyecto en la universidad y para empezar a probarlo me han dicho que cree un servidor web en python y luego intente conectar a el con java; el problema es que no me conecta y no entiendo la razón. Voy a pegar el código de los dos programas, son muy simples pero me falla al conectar que es lo básico:
SERVIDOR WEB en PYTHON:----->server.py
print'Servidor en funcionamiento'
def multiplica(x,y):
return x*y
def divide(x,y):
return x/y
from SimpleXMLRPCServer import SimpleXMLRPCServer
s=SimpleXMLRPCServer(('localhost',7771))
s.register_function(multiplica)
s.register_function(divide)
s.serve_forever()
CLIENTE EN JAVA------->MiServicioweb.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
import java.net.*;
import java.io.*;
import java.lang.String;
import java.net.MalformedURLException;
import javax.net.*;
import javax.xml.rpc.ServiceException;
import org.apache.axis.utils.Options;
public class MiServicioWeb
{
public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:7771/server.py";--------->aquí debe estar el problema
String method = "multiplica";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( method );
Integer i1 = new Integer(2);
Integer i2 = new Integer(5);
call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN );
call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN );
call.setReturnType( XMLType.XSD_INT );/
Integer res = (Integer) call.invoke( new Object [] {i1,i2});//invocacion
System.out.println("\nLa suma es " + res);
}
Es tan simple como una multiplicación pero no se si me falta algún import a alguna libreria o algo, todo compila perfectamente y el error está en el cliente, ya que el servidor probandolo con un cliente python funciona perfectamente.
Los dos código fuentes tanto el servidor como en el cliente están en la misma carpeta pero no lo detecta....
Espero que alguien sepa como conectar un cliente java con un servidor python,
un saludo y gracias
Estoy haciendo un proyecto en la universidad y para empezar a probarlo me han dicho que cree un servidor web en python y luego intente conectar a el con java; el problema es que no me conecta y no entiendo la razón. Voy a pegar el código de los dos programas, son muy simples pero me falla al conectar que es lo básico:
SERVIDOR WEB en PYTHON:----->server.py
print'Servidor en funcionamiento'
def multiplica(x,y):
return x*y
def divide(x,y):
return x/y
from SimpleXMLRPCServer import SimpleXMLRPCServer
s=SimpleXMLRPCServer(('localhost',7771))
s.register_function(multiplica)
s.register_function(divide)
s.serve_forever()
CLIENTE EN JAVA------->MiServicioweb.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import javax.xml.rpc.ParameterMode;
import java.net.*;
import java.io.*;
import java.lang.String;
import java.net.MalformedURLException;
import javax.net.*;
import javax.xml.rpc.ServiceException;
import org.apache.axis.utils.Options;
public class MiServicioWeb
{
public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:7771/server.py";--------->aquí debe estar el problema
String method = "multiplica";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName( method );
Integer i1 = new Integer(2);
Integer i2 = new Integer(5);
call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN );
call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN );
call.setReturnType( XMLType.XSD_INT );/
Integer res = (Integer) call.invoke( new Object [] {i1,i2});//invocacion
System.out.println("\nLa suma es " + res);
}
Es tan simple como una multiplicación pero no se si me falta algún import a alguna libreria o algo, todo compila perfectamente y el error está en el cliente, ya que el servidor probandolo con un cliente python funciona perfectamente.
Los dos código fuentes tanto el servidor como en el cliente están en la misma carpeta pero no lo detecta....
Espero que alguien sepa como conectar un cliente java con un servidor python,
un saludo y gracias
Valora esta pregunta


0