【问题标题】:SSIS-Calling java service using Script TaskSSIS-使用脚本任务调用java服务
【发布时间】:2014-11-27 14:09:11
【问题描述】:

我正在尝试在脚本任务的入口点方法中编写以下代码来调用基于 Java 的 Web 服务方法。如果我从控制台应用程序调用,但在从 SSIS 控制流调用时,以下代码会正确执行,直到消息框 1 它会正确执行,但在执行 webRequest.GetResponse() 时会发生什么不知道它既不给出错误也不执行下一行代码.

    public void Main()
    {
        string envelopeContent = GetSoapEvvelope();
        XmlDocument soapEnvelopeXml = new XmlDocument();
        soapEnvelopeXml.LoadXml(envelopeContent);
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(_url);
        webRequest.Method = "POST"; // get executed
        soapEnvelopeXml.Save(webRequest.GetRequestStream());
        MessageBox.Show("1"); 
        WebResponse response = webRequest.GetResponse();
        MessageBox.Show("2"); // does not get executed
        string responseString = string.Empty;
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            responseString = reader.ReadToEnd();
        }

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(responseString);
        XmlNode node = doc.SelectSingleNode("//*[local-name()='result']");
       }

请指导我该怎么做?根据我的理解,Web 服务任务需要 WSDL/代理。有没有其他方法可以在请求中调用传递soap信封的java基础Web服务?

谢谢

@保罗

【问题讨论】:

  • 你能检查接收请求的网络服务器,看看它是否被调用?您是否在 BIDS 中以交互方式运行此操作,而您只看到一个消息框 1 而没有更多? Java 部分应该无关紧要,它只是一个 Web 服务。
  • 是的,我从 BIDS 运行它,我只能看到消息框 1。根据提琴手服务器获取请求。 Fiddler 信息如下 - 所选会话是 HTTP CONNECT 隧道。此隧道使客户端能够通过 HTTP 代理服务器(如 Fiddler)发送原始流量(例如 HTTPS 加密的流或 WebSocket 消息)。请求计数:1 发送字节:97(标头:97;正文:0) 接收字节:107(标头:107;正文:0)

标签: sql-server web-services ssis etl script-task


【解决方案1】:

我在使用 sql server 2008 R2 时遇到过这种情况。现在我在 sql server 2012 中尝试了相同的解决方案,它工作正常,没有任何更改。

【讨论】:

    猜你喜欢
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2011-03-21
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多