1.org.mule.transport.http.ReleasingInputStream cannot be cast to java.lang.String
通过调试才发现在调用第三方接口的服务时出现了这种错误。说mule中传输的这个http流不能转换成String类型
在调用第三方接口的过程中如下代码:
<!-- CRM2.0 -->
<flow name="crmForWssFlow">
<inbound-endpoint address="vm://invoke.crm.wss" exchange-pattern="request-response"></inbound-endpoint>
<http:outbound-endpoint address="${crmForWss.url}" method="POST" responseTimeout="${default.invoke.timeout}" exchange-pattern="request-response">
</http:outbound-endpoint>
</flow>
就是说从这个输出点传出来的数据不能进行有效的转换
这里我们使用了
<byte-array-to-string-transformer />
inputStream里面传的是字节码 将字节码转换成String 这个属性在好不过了 结果成功了 。。。
ps:当时我再想的时候 想到了mule中的
<http:http-response-to-string-transformer></http:http-response-to-string-transformer>结果还是不能解决这个问题,后来想到inputStream传的是字节码
就想到了这个
相关问题谷歌的连接http://forum.mulesoft.org/mulesoft/topics/beginner_please_help_part_2_result
2.这里在附加几个今天开发所遇到的问题
(1).在调试的过程当中我需要把通过
//3.将pojo转换成json格式
String jsonString = JSONUtil.toJSONString(bUM);
//4.并且将json用post的方式传给服务。。
String resp = CrmUtil.invokeCrmVMAndLogger(mc, jsonString);
json格式的数据 书写成String的来进行测试,,,遇到了这个解析的问题,通过加上了反斜杠进行了解析
/*String resp = "{\"FavourNbr\":\"400,110,112,120,800\",\"errCode\":\"101\",\"msg\":\"校验不通过\",\"result\":\"1\"}";*/
解决了这个问题。。
(2).在运用fastJson的时候 别名的问题
需要在属性的get方法的时候加上注解。。如下
@JSONField(name="FavourNbrList")
public List<String> getfavourNbrList() {
return favourNbrList;
}
我需要的是获得大写开头的属性就可以这样做。而不是像Xstream 直接在属性的上面去别名 表现方式也不相同@xstream(”name“);
(3).目前最头疼的问题是 怎么在拨VPN的时候不断网 这是个灰常蛋疼的问题。。。
(4).调服务的时候要注意的问题
要区分wss 和 bcp 以及Crm系统之间的调用
能力平台提供给网厅一个调用的地址,而cRM给能力平台一个调用地址,从而使得当前台wss传值进来通过报文的形式传值 是通过能力平台的地址进行访问的
为了我们从前端传过来的值能够调用到Crm中我们通过拨vpn连接到相应的服务器 并通过putty来获得服务器中的ip和端口号 从而在通过端口的映射来映射到我们本地的端口
在我们的配置文件中就可以配置我们本地的端口从而映射到他们的服务中。。
如果我们要在我们直接通过他们想要的参数来调用对方的ip的端口号,,直接通过调用他们的服务器就可以了
(5)贪婪加载!!!!