Mule:如何从远程客户端使用服务

Estarossa

我一直在关注本教程,这对于从WSDL http://training.middlewareschool.com/mule/consumption-wsdl-first-service/使用wb服务非常有用我一直在尝试通过使用CXF在Eclipse中生成客户端Web服务并在Mule中发布Web服务来执行类似的方法。我的问题是:如果我将客户端和Mule应用程序配置为具有相同的终结点(例如:localhost:8082 / ipsoap / test),那么如何使Web服务与本教程相同。意思是,如果我测试了从客户端发送的对Mule的请求(日食),我应该从Mule收到正确的响应。预先感谢您的宝贵时间。

简而言之:

1-我在教程的以下链接中使用wsdl在eclipse中生成了一个客户端应用程序:http ://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl

2-作为Mule的起点,我添加了一个http连接器和一个记录器,并将eclipse中的端点路径更改为我在Mule上的HTTP连接器上设置的端点路径。因此,当我从Eclipse中的客户端向Mule发送请求时,可以看到有一个有效负载。

3-我需要一个应用程序,即我在Eclipse中的客户端应用程序,在Mule中使用已发布的服务。现在,我认为这是使用CXF组件实现的,但是我仍然无法使其工作。实际上,我想知道这是否是使用Mule的一种有效方法,因为我找不到任何有关我要达到的目标的教程。

所以这是我如何测试它: 在此处输入图片说明

我使用了与Mule中相同的端点,并收到以下日志:

> INFO  2014-07-07 13:19:46,124
> [[soapservice].connector.http.mule.default.receiver.02]
> org.mule.api.processor.LoggerMessageProcessor: message transformation
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:q0="http://ws.cdyne.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  
> <soapenv:Body>
>     <q0:ResolveIP>
>       <q0:ipAddress>173.194.36.39</q0:ipAddress>
>       <q0:licenseKey/>
>     </q0:ResolveIP>   </soapenv:Body> </soapenv:Envelope>
> 
> ERROR 2014-07-07 13:19:46,134
> [[soapservice].connector.http.mule.default.receiver.02]
> org.mule.exception.DefaultMessagingExceptionStrategy: 
> ******************************************************************************** Message               : wrong number of arguments. Failed to route
> event via endpoint: org.mule.module.cxf.CxfOutboundMessageProcessor.
> Message payload is of type: String Code                  :
> MULE_ERROR--2
> -------------------------------------------------------------------------------- Exception stack is:
> 1. wrong number of arguments (java.lang.IllegalArgumentException)   sun.reflect.NativeMethodAccessorImpl:-2 (null)
> 2. wrong number of arguments. Failed to route event via endpoint: org.mule.module.cxf.CxfOutboundMessageProcessor. Message payload is of
> type: String (org.mule.api.transport.DispatchException)  
> org.mule.module.cxf.CxfOutboundMessageProcessor:150
> (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
> -------------------------------------------------------------------------------- Root Exception stack trace: java.lang.IllegalArgumentException: wrong
> number of arguments   at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at
> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)   at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

如您所见,可以看到soap请求,但它并没有在CXF组件级别使用。这是我的m子代码:

<flow name="SoapService" doc:name="SoapService">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" path="test/cap.asmx" doc:name="HTTP"/>
        <byte-array-to-string-transformer doc:name="Byte Array to String"/>
        <logger message="message transformation #[message.payload]" level="INFO" doc:name="Logger"/>
        <flow-ref name="RequestResponse" doc:name="Flow Reference"/>
        <logger level="INFO" doc:name="Logger" message="after posting #[message.payload]"/>
        <mulexml:object-to-xml-transformer doc:name="Object to XML"/>
    </flow>
    <flow name="RequestResponse" doc:name="RequestResponse">
        <cxf:jaxws-client operation="ResolveIP" clientClass="pck.IP2Geo" port="IP2GeoSoap" wsdlLocation="file:/C:/Users/12204-hajjam1/workspace/ipgo/src/ipgeo.wsdl" doc:name="soap 2"/>
        <logger message="before posting #[message.payload]" level="INFO" doc:name="Logger"/>
        <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://localhost:10387/ip2geo/ip2geo.asmx" doc:name="HTTP"/>
    </flow>

另外,如果我在cxf组件之前用ip#[{'173.194.36.39',''}](第二个参数可以留空)添加一个设置的有效负载,它将返回一个空元素。但是,响应应该是这样的:

<pck.IPInformation>
<city>Mountain View</city>
<stateProvince>CA</stateProvince>
<country>United States</country>
<organization/>
<latitude>37.4192</latitude>
<longitude>-122.0574</longitude>
<areaCode>0</areaCode>
<timeZone/>
<hasDaylightSavings>false</hasDaylightSavings>
<certainty>90</certainty>
<regionName/>
<countryCode>US</countryCode>
</pck.IPInformation> 

因此,我的问题是响应的消耗和检索。很抱歉,但是我一直在为此苦苦挣扎,还没有找到在线解决方案。提前致谢。

戴维·多索特(David Dossot)

您应该创建消息类的实例,该实例是ResolveIP从WSDL为该方法生成的,并将其用作cxf:jaxws-client元素之前的消息有效负载

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mule:如何使用远程客户端的服务

来自分类Dev

如何将文件作为SOAP请求传递给Mule SOAP客户端以使用服务

来自分类Dev

如何将文件作为SOAP请求传递给Mule SOAP客户端以使用服务

来自分类Dev

远程使用 VPN 客户端

来自分类Dev

如何使用客户端中的接口注入WCF服务?

来自分类Dev

如何使用ajax从客户端脚本调用WCF服务?

来自分类Dev

如何使用此客户端服务器程序?

来自分类Dev

如何使用客户端中的接口注入WCF服务?

来自分类Dev

如何通过Thrift客户端连接到远程Thrift服务器

来自分类Dev

Android系统如何管理连接到有界远程服务的客户端列表

来自分类Dev

使用客户端(Linux)中的资源在远程服务器中执行命令

来自分类Dev

使用gdb服务器和客户端的远程调试不起作用

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

使用客户端主机上的“ ssh”修改远程服务器主机上的持久变量

来自分类Dev

在本地和远程服务器上的git(客户端)上使用Netbeans

来自分类Dev

Windows客户端使用SSH监视远程UNIX服务器

来自分类Dev

从 ubuntu 客户端远程访问 debian 服务器

来自分类Dev

如何模拟客户端休息服务

来自分类Dev

客户端在远程地址中使用此Web服务后,在本地项目上测试WCF Web服务

来自分类Dev

如何使用gradle在远程Tomcat上部署War和客户端?

来自分类Dev

如何从远程Swagger Url使用msbuild生成API客户端?

来自分类Dev

如何使用VNC连接到VirtualBox远程桌面客户端?

来自分类Dev

如何使用Oracle APEX获取远程客户端IP地址?

来自分类Dev

如何使用Ajax更改服务器端语言Cookie(例如客户端)?

来自分类Dev

如何使用socket.io从客户端调用服务器端功能?

来自分类Dev

如何使用asp.net访问服务器端的客户端文件

来自分类Dev

如何使用服务器端C#在客户端更改表单属性

来自分类Dev

TcpInboundGateway:如何关闭与远程客户端的现有连接

来自分类Dev

TcpInboundGateway:如何关闭与远程客户端的现有连接

Related 相关文章

  1. 1

    Mule:如何使用远程客户端的服务

  2. 2

    如何将文件作为SOAP请求传递给Mule SOAP客户端以使用服务

  3. 3

    如何将文件作为SOAP请求传递给Mule SOAP客户端以使用服务

  4. 4

    远程使用 VPN 客户端

  5. 5

    如何使用客户端中的接口注入WCF服务?

  6. 6

    如何使用ajax从客户端脚本调用WCF服务?

  7. 7

    如何使用此客户端服务器程序?

  8. 8

    如何使用客户端中的接口注入WCF服务?

  9. 9

    如何通过Thrift客户端连接到远程Thrift服务器

  10. 10

    Android系统如何管理连接到有界远程服务的客户端列表

  11. 11

    使用客户端(Linux)中的资源在远程服务器中执行命令

  12. 12

    使用gdb服务器和客户端的远程调试不起作用

  13. 13

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  14. 14

    使用客户端主机上的“ ssh”修改远程服务器主机上的持久变量

  15. 15

    在本地和远程服务器上的git(客户端)上使用Netbeans

  16. 16

    Windows客户端使用SSH监视远程UNIX服务器

  17. 17

    从 ubuntu 客户端远程访问 debian 服务器

  18. 18

    如何模拟客户端休息服务

  19. 19

    客户端在远程地址中使用此Web服务后,在本地项目上测试WCF Web服务

  20. 20

    如何使用gradle在远程Tomcat上部署War和客户端?

  21. 21

    如何从远程Swagger Url使用msbuild生成API客户端?

  22. 22

    如何使用VNC连接到VirtualBox远程桌面客户端?

  23. 23

    如何使用Oracle APEX获取远程客户端IP地址?

  24. 24

    如何使用Ajax更改服务器端语言Cookie(例如客户端)?

  25. 25

    如何使用socket.io从客户端调用服务器端功能?

  26. 26

    如何使用asp.net访问服务器端的客户端文件

  27. 27

    如何使用服务器端C#在客户端更改表单属性

  28. 28

    TcpInboundGateway:如何关闭与远程客户端的现有连接

  29. 29

    TcpInboundGateway:如何关闭与远程客户端的现有连接

热门标签

归档