向 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) {...}