IBM Worklight 6.0 - 调用适配器过程时出错

Posted

技术标签:

【中文标题】IBM Worklight 6.0 - 调用适配器过程时出错【英文标题】:IBM Worklight 6.0 - Getting Error while invoking adapter procedure 【发布时间】:2013-08-02 09:03:09 【问题描述】:

我正在关注 IBM Worklight Getting Started 网站上提供的培训模块 04_02_HTTP_adapter_-_Communicating_with_HTTP_back- end_systems,但在调用过程时出现错误:


    "errors": [
        "Runtime: Http request failed: java.net.UnknownHostException: rss.cnn.com"
    ],
    "info": [
    ],
    "isSuccessful": false,
    "warnings": [
    ]

适配器 -impl.js

function getStories(interest) 
    path = getPath(interest);

var input = 
    method : 'get',
    returnedContentType : 'xml',
    path : path
           ;


   return WL.Server.invokeHttp(input);
              

      function getStoriesFiltered(interest) 
   path = getPath(interest);

     var input = 
         method : 'get',
         returnedContentType : 'xml',
         path : path,
         transformation : 
        type : 'xslFile',
        xslFile : 'filtered.xsl'
       
    ;

   return WL.Server.invokeHttp(input);
       



      function getPath(interest) 
        if (interest == undefined || interest == '') 
    interest = '';
          else 
    interest = '_' + interest;
         
           return 'rss/edition' + interest + '.rss';
                   

XML 文件

        <?xml version="1.0" encoding="UTF-8"?>

   <wl:adapter name="Rs-s-reader"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:wl="http://www.worklight.com/integration"
xmlns:http="http://www.worklight.com/integration/http">

<displayName>Rs-s-reader</displayName>
<description>Rs-s-reader</description>
<connectivity>
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
        <protocol>http</protocol>
        <domain>rss.cnn.com</domain>
        <port>80</port> 

    </connectionPolicy>
    <loadConstraints maxConcurrentConnectionsPerNode="2" />
</connectivity>

<procedure name="getStories"/>

<procedure name="getStoriesFiltered"/>

     </wl:adapter>

啊哈,我终于得到了答案。我在 XML 文件中做了一些代理设置,我的适配器开始工作。这是使用任何代理时必须添加的代理代码。

 <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
 <protocol>http</protocol>
 <domain>rss.cnn.com</domain>
 <port>80</port>
 <proxy>
 <protocol>http</protocol>
 <domain>proxy.My_company_name.com</domain>  ----use proxy URL here
 <port>8080</port>
 <authentication>
 <basic/>
 <serverIdentity>
 <username>user</username> --------user is username
 <password>password</password> ------------Proxy Password 
 </serverIdentity>
 </authentication>
 </proxy>
 </connectionPolicy>

【问题讨论】:

使用您的适配器 -impl.js 和 xml 编辑问题 这里有人问了同样的问题-ibm.com/developerworks/community/forums/html/… 好的,这看起来像默认的 HTTP 适配器;您可以在浏览器中访问 rss.cnn.com 吗?您如何尝试调用适配器过程? 我实际上首先尝试了这个“engadget.com/rss.xml”,但遇到了同样的错误,所以决定检查默认的 HTTP 适配器,但又遇到了同样的错误。当我尝试访问 rss.cnn.com 时,它会重定向到“feedburner.google.com/fb/a/myfeeds”。对于“engadget.com/rss.xml”上的 rss 提要,我没有使用任何参数,因此在尝试使用 rss.cnn.com 时将参数字段保持为空白,我使用的是参数“Africa” 感谢 Idan 的帮助...我得到了我在问题中更新的答案。我希望这对其他人有帮助。 【参考方案1】:

啊哈,我终于得到了答案。我在 XML 文件中做了一些代理设置,我的适配器开始工作。这是使用任何代理时必须添加的代理代码。

 <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
 <protocol>http</protocol>
 <domain>rss.cnn.com</domain>
 <port>80</port>
 <proxy>
 <protocol>http</protocol>
 <domain>proxy.My_company_name.com</domain>  ----use proxy URL here
 <port>8080</port>
 <authentication>
 <basic/>
 <serverIdentity>
 <username>user</username> --------user is username
 <password>password</password> ------------Proxy Password 
 </serverIdentity>
 </authentication>
 </proxy>
 </connectionPolicy>

【讨论】:

以上是关于IBM Worklight 6.0 - 调用适配器过程时出错的主要内容,如果未能解决你的问题,请参考以下文章

适配器部署失败 IBM Worklight 6.0

IBM Worklight 6.0 - 将适配器部署到 Worklight Server 后出现 wl_antiXSRFRealm 错误

IBM Worklight 6.0 - 如何在适配器中启用/查看 WL.Logger.debug?

IBM Worklight 6.0 - 适配器身份验证失败:“服务器无法处理来自应用程序的请求”

IBM Worklight - 基于 6.1 构建的项目不会部署在 6.1 服务器上,说我需要使用 6.0

IBM Worklight 6.0 - 使用 Web 服务的混合应用程序无法在实际设备上运行?