向 weblogic 上托管的网络服务提交 post xml 请求,并从客户端请求中获得响应 xml
Submit a post xml request to webservice hosted on weblogic and get a response xml from client request
我正在尝试向 weblogic 中的网络服务发送 post 请求。
我正在使用 soapui 发出请求,这个工具将我必须发送到 XML 格式的对象结构化,但是当我发送请求时它给了我错误:org.apache.http.NoHttpResponseException:目标服务器失败回应。
有什么想法吗?
我做的webservice,不是我在咨询任何外部。
JDNI 连接:
if ( conn == null ){
Context ctx = null;
try{
ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc_oracle_ws");
conn = ds.getConnection();
}catch(Exception ex){}
}
代码webservice方法
@WebService(serviceName = "ConsultarRecibosPendientes", targetNamespace = "http://websercice.fi.co/")
public class ConsultarRecibosPendientes extends Base {
@WebMethod(operationName = "ConsultarRecibosPendientes")
@WebResult(name = "ConsultarRecibosPendientesResult")
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(@WebParam(
name = "ConsultarRecibosPendientesReq") ConsultarRecibosPendientesReq objeto) {
ConsultarRecibosPendientesRes recibosRes = new ConsultarRecibosPendientesRes();
cliente_servicio = ConsultarInformacionClienteServicio( objeto.nCodBanco,
objeto.nCodAgencia,
objeto.nCodInstitucion,
objeto.nCodConvenio,
objeto.nTipoBusqueda,
objeto.nTipoLlaveAcceso,
objeto.strLlaveAcceso);
recibosRes.nCodRespuesta = cliente_servicio.codigoRespuesta;
recibosRes.nTipoIdentificacion = cliente_servicio.tipoIdentificacion;
recibosRes.strIdentificacion = cliente_servicio.identificacionCliente.replace("-", "").trim();
recibosRes.strNombreCliente = cliente_servicio.nombreCliente;
recibosRes.nFechaTransaccion = cliente_servicio.fechaTransaccion;
recibosRes.nCantServicios = cliente_servicio.cantServicios;
return recibosRes;
}
}
与数据库的连接很好,您只需在 WebLogic 服务器上创建一个 "data source" 符合我们需要的规范,在我的例子中是一个瘦 oracle 实例连接。
然后,当我在我的代码中定义 XML 的某些属性时,生成自动 SOAP UI 的 XML 没有为我服务,我不得不创建 XML 遵循我的规范,这样我就可以与 WebService 进行通信。
为我服务的XML如下:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<web:ConsultarRecibosPendientes xmlns:web="http://websercice.fi.co/">
<oReq>
<nCodBanco>150</nCodBanco>
<nCodAgencia>1</nCodAgencia>
<nCodInstitucion>1</nCodInstitucion>
<nCodConvenio>1</nCodConvenio>
<nTipoBusqueda>1</nTipoBusqueda>
<nTipoLlaveAcceso>1</nTipoLlaveAcceso>
<strLlaveAcceso>llave de acceso</strLlaveAcceso>
</oReq>
</web:ConsultarRecibosPendientes>
</soap:Body>
</soap:Envelope>
除此之外,我通过 "oReq" 将名称更改为参数,如下所示:
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(
@WebParam(name = "oReq", targetNamespace = "")
ConsultarRecibosPendientesReq oReq) {...}
我正在尝试向 weblogic 中的网络服务发送 post 请求。 我正在使用 soapui 发出请求,这个工具将我必须发送到 XML 格式的对象结构化,但是当我发送请求时它给了我错误:org.apache.http.NoHttpResponseException:目标服务器失败回应。
有什么想法吗? 我做的webservice,不是我在咨询任何外部。
JDNI 连接:
if ( conn == null ){
Context ctx = null;
try{
ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc_oracle_ws");
conn = ds.getConnection();
}catch(Exception ex){}
}
代码webservice方法
@WebService(serviceName = "ConsultarRecibosPendientes", targetNamespace = "http://websercice.fi.co/")
public class ConsultarRecibosPendientes extends Base {
@WebMethod(operationName = "ConsultarRecibosPendientes")
@WebResult(name = "ConsultarRecibosPendientesResult")
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(@WebParam(
name = "ConsultarRecibosPendientesReq") ConsultarRecibosPendientesReq objeto) {
ConsultarRecibosPendientesRes recibosRes = new ConsultarRecibosPendientesRes();
cliente_servicio = ConsultarInformacionClienteServicio( objeto.nCodBanco,
objeto.nCodAgencia,
objeto.nCodInstitucion,
objeto.nCodConvenio,
objeto.nTipoBusqueda,
objeto.nTipoLlaveAcceso,
objeto.strLlaveAcceso);
recibosRes.nCodRespuesta = cliente_servicio.codigoRespuesta;
recibosRes.nTipoIdentificacion = cliente_servicio.tipoIdentificacion;
recibosRes.strIdentificacion = cliente_servicio.identificacionCliente.replace("-", "").trim();
recibosRes.strNombreCliente = cliente_servicio.nombreCliente;
recibosRes.nFechaTransaccion = cliente_servicio.fechaTransaccion;
recibosRes.nCantServicios = cliente_servicio.cantServicios;
return recibosRes;
}
}
与数据库的连接很好,您只需在 WebLogic 服务器上创建一个 "data source" 符合我们需要的规范,在我的例子中是一个瘦 oracle 实例连接。
然后,当我在我的代码中定义 XML 的某些属性时,生成自动 SOAP UI 的 XML 没有为我服务,我不得不创建 XML 遵循我的规范,这样我就可以与 WebService 进行通信。
为我服务的XML如下:
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<web:ConsultarRecibosPendientes xmlns:web="http://websercice.fi.co/">
<oReq>
<nCodBanco>150</nCodBanco>
<nCodAgencia>1</nCodAgencia>
<nCodInstitucion>1</nCodInstitucion>
<nCodConvenio>1</nCodConvenio>
<nTipoBusqueda>1</nTipoBusqueda>
<nTipoLlaveAcceso>1</nTipoLlaveAcceso>
<strLlaveAcceso>llave de acceso</strLlaveAcceso>
</oReq>
</web:ConsultarRecibosPendientes>
</soap:Body>
</soap:Envelope>
除此之外,我通过 "oReq" 将名称更改为参数,如下所示:
public ConsultarRecibosPendientesRes ConsultarRecibosPendientes(
@WebParam(name = "oReq", targetNamespace = "")
ConsultarRecibosPendientesReq oReq) {...}