Java - Ayuda Urgente para crear una aplicación que consuma webservices dinámicamente

   
Vista:

Ayuda Urgente para crear una aplicación que consuma webservices dinámicamente

Publicado por mjulia (1 intervención) el 21/12/2011 11:26:04
Hola, soy novato en java y necessito crear una aplicación de java (jar) que se ejecute en un servidor y que sea capaz de consumir un webservice instanciandolo de forma dinámica.

El proyecto forma parte de varios proyectos web que llaman a webservices. hay una libreria que se encarga de llamar dinámicamente al webservice adecuado mediante codigo.

Mi proyecto tiene usar esta libreria, la cual funciona correctamente cuando de llama desde los demas proyectos web. Pero a la hora de lanzarlo desde mi aplicación me da una excepción >Unknown type "javax.xml.rpc.ServiceFactory"< en la linea [ ServiceFactory serviceFactory = ServiceFactory.newInstance(); ].

Este es el código de la función.

/**
* Método para seleccionar y procesar al servicio web que contiene la lógica de recepción del mensaje
* @param doc Documento XML con el elemento de mensaje a recepcionar
* @return Vacío si la operación se realizó correctamente en caso contrario la descripción de los posibles errores
*/
public String seleccionarServicioRecepcion(Document doc) throws SQLException, Exception {

definicionServicioWeb definicionSW = null;
String mensaje = null;
String resultado = null;

configuracionMensajes cfgm = new configuracionMensajes();
definicionSW = cfgm.obtenerDefinicionServicioWeb(this.proceso, this.tipo);

if (definicionSW != null) {

//Recuperar parámetros configuración
String hostSW = Configuration.getInstance().getProperty("smsg_Host ");

//Serializar el mensaje
Format format = Format.getPrettyFormat();
XMLOutputter xmloutputter = new XMLOutputter(format);
mensaje = xmloutputter.outputString(doc);

//Definiciones
QName serviceName = new QName(definicionSW.namespaceSW, definicionSW.nameSW);
String endpoint = "http://" + hostSW + "/" + definicionSW.addressSW;
String nameWebMethod = definicionSW.methodSW;

QName intQName = new QName("http://www.w3.org/2001/XMLSchema", "int");
QName stringQName = new QName("http://www.w3.org/2001/XMLSchema", "string");

//Crear la instancia del Servicio Web de manera dinámica
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService(serviceName);

//Crear el objeto de llamada del Servicio WEb
Call call = (Call) service.createCall();
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, "");
call.setTargetEndpointAddress(endpoint);

//Establecer el método a invocar
call.setOperationName(new QName(definicionSW.namespaceSW, nameWebMethod));

// Definir parámetros de salida del método
call.setReturnType(stringQName);

// Definir parámetros de entrada del método
call.addParameter("mensaje", stringQName, javax.xml.rpc.ParameterMode.IN);
call.addParameter("proceso", stringQName, javax.xml.rpc.ParameterMode.IN);
call.addParameter("tipo", stringQName, javax.xml.rpc.ParameterMode.IN);
call.addParameter("user", stringQName, javax.xml.rpc.ParameterMode.IN);

Object[] inParams = new Object[4];
inParams[0] = mensaje;
inParams[1] = this.proceso;
inParams[2] = this.tipo;
inParams[3] = this.user;

//Invocar el WebMethod del WebService
resultado = (String) call.invoke(inParams);

}

return resultado;
}

Alguna idea de porque me lanza esa excepción?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder