2013-07-16 61 views
0

我编辑了这个问题,它变得过于复杂。我禁用了Web服务的SSL要求,将其作为一个关注点去除。不能用骡呼叫网络服务

我只是试图从Mule调用本地Web服务。当我通过出站http端点(通过正确的用户名和密码)调用它时,出现以下错误。

Failed to route event via endpoint: 
DefaultOutboundEndpoint{ 
    endpointUri=http://myUsername:<password>@localhost/WebServices3/apfmlead, connector=HttpConnector 
    { 
     name=connector.http.mule.default 
     lifecycle=start 
     this=6cb6a34 
     numberOfConcurrentTransactedReceivers=4 
     createMultipleTransactedReceivers=true 
     connected=true 
     supportedProtocols=[http] 
     serviceOverrides=<none> 
    }, 
    name='endpoint.http.localhost.80.WebServices3.apfmlead', mep=REQUEST_RESPONSE, 
    properties={followRedirects=true, http.method=GET}, 
    transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, 
    deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, 
    endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: GetMethod 

如果我的endpointUri复制到浏览器,并与实际密码正确替换“<密码>”,服务功能。

回答

0

如果您呼叫使用HTTPS,那么你必须导入它的证书,并配置适当的HTTPS连接的Web服务:
http://www.mulesoft.org/documentation/display/current/HTTPS+Transport+Reference

+0

我试图在没有运气的情况下创建并引用keystore.jks。我现在再试一次,请检查编辑我的问题。感谢您的建议。我觉得我真的很亲密。 – caltrop

+0

如果您没有在您创建的密钥库中导入证书,它将不起作用。 – Seba

0

当调用通过浏览器的Web服务器,一个弹出会出现要求输入用户名和密码。我认为这与出站http端点的“HTTP设置”选项卡中的用户名/密码字段相当。通过从“HTTP设置”选项卡中删除用户名和密码,我可以使用配置xml中的标记通过标头传递认证。

看起来我的问题只是对Web服务身份验证的理解不足。

+0

你可以发布你所申请的修补程序的代码吗?我有一些类似的情况,我必须调用.net Web服务,通​​过Windows集成身份验证进行安全保护,并且目前还没有工作。全部细节在这里:http://stackoverflow.com/questions/18860924/consuming-net-asmx-web-service-from-mule-esb-throws-cxf-exception-401-unauthor –