Siebel EAI- Web Service 常见错误汇总

由于项目原因部分代码被模糊处理,有些问题待补充,欢迎指出错误,很多试探着理解的,研究的不够深入。

问题1

Error invoking service 'XXX Service', method 'XXXXX' at step 'Invoke WebService'.(SBL-BPR-00162)
--
Fatal Error in XML Parser at line 1, column 1: Invalid document structure(SBL-EAI-00247)

答:XXXX 就是导入WSDL后生成的BS,编码格式的原因导致报错,所有发送和返回的Encoding应该是UTF-8

问题2

Siebel XSD does not support the use of <import> and <include> elements and the <any>
attribute. To implement the <import> or <include> functionality, place the schema definition into a
single file.

问题3

XML element names must be unique
in the document in which they are defined. This can cause a parsing problem if two integration
components have fields with the same name.

问题4

Unhandled Exception: The XML document cannot be converted to an XML hierarchy.(SBL-EAI-04110)
XML Hierarchy Converter error - empty input message, expecting an XML document in <Value> of input arguments(SBL-EAI-00246)
答:在用XML Converter转换之前,数据类型应该是Binary的<但不是必须的,有时候是需要String类型的。

问题5

Invoke Webservice throw error:Cannot convert Integration Object Hierarchy to XML Hierarchy.  (SBL-EAI-04108)

Integration component type 'QueryXXXRequest' is not a valid child type for component type 'QueryTestHotBillRequest'(SBL-EAI-04008)
答:
Each integration component should have only valid children components, consistent with the integration object definition. There was a component type found that is not expected to be a child of another component. 

Corrective Action,Check whether the data contains a valid integration component structure. 

问题6

Invoke Webservice throw error:Fatal Error in XML Parser at line 5, column 5: Invalid document structure(SBL-EAI-00247)
Error invoking service 'HW Outbound Interface Service', method 'GenericWSInvoke' at step 'Invoke WebService'.(SBL-BPR-00162)
--
Fatal Error in XML Parser at line 5, column 5: Invalid document structure(SBL-EAI-00247)
************************End of Error Message:*****
答:可能的情况是返回的报文为空,检查是否ClearCache,是否使用新的wsdl

问题7

Invoke Webservice throw error:Unknown Part ':TestResponse'  for operation 'QueryBlackList' exists in SOAP message.(SBL-EAI-04304)
Error invoking service 'Outbound Interface Service', method 'GenericWSInvoke' at step 'Invoke WebService'.(SBL-BPR-00162)
--
Unknown Part ':TestResponse'  for operation 'WWWWWW' exists in SOAP message.(SBL-EAI-04304)
答:返回报文的头结点“TestResult”错误,与IO的第一层IC->XML Tag不匹配
例如:
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sub="http://www.Test.com/wsdl/esb/submitorder" xmlns:sub1="http://www.Test.com/schema/esb/submitorderresponse">
   <soapenv:Header/>
   <soapenv:Body>
      <TestResult>
         <PhoneNumber>555</PhoneNumber>
         <Status>1</Status>
         <Reason>555</Reason>
         <StartTime>1</StartTime>
         <EndTime>1</EndTime>   
     </TestResult>
   </soapenv:Body>
</soapenv:Envelope> 

问题8

Invoke Webservice throw error:HTTP Internet Exception during 'Data Send': 'The connection with the server was reset
', code: '12031'(SBL-EAI-04116)
Error invoking service 'Outbound Interface Service', method 'InvokeWS' at step 'WFInvokeWS'.(SBL-BPR-00162)
--
HTTP Internet Exception during 'Data Send': 'The connection with the server was reset
', code: '12031'(SBL-EAI-04116)

这个问题:HTTP Internet Exception during 'Data Send': 'The connection with the server was reset。原因是接口发起请求时,使用了一个旧的链接或者是一个已经被外部系统释放的链接。因为我们siebel的connection的HTTPMaxIdleSeconds默认参数值1200秒,TimedOut超时时间是120秒。
所以每次使用的链接有可能是沿用旧的,或者是重新初始化一个新连接。如果一个释放,一个继续使用旧的就会引发上述问题。
修改方法很多:
1.在BS:EAI HTTP Transport有个入参ConnectionSubsystem,设置为关闭即可。如果用webs,需要加入代码了。
2.就是把EAI HTTP Transport的入参HTTPMaxIdleSeconds与下游系统设置一致。
3.与对端系统保持一致建立连接池

方法2的代码:

function Service_PreInvokeMethod(MethodName, Inputs, Outputs) 
{
///
// ------------ -------------- ------- ------------------
// Reason:An HTTP header "Connection" can be set to "Close" to instruct the web server at the other end to close the connection as soon as a reply is sent.
// this also helps EAI HTTP Transport to use a fresh new connection on every communication and helps avoid the connection reset error.
///
if (MethodName == "SendReceive") 
{
//The default value for HTTPMaxIdleSeconds is 1200 seconds. 
//Inputs.SetProperty("HTTPMaxIdleSeconds", "0");
Inputs.SetProperty("HDR.Connection", "Close");
}
return (ContinueOperation);
}

问题9

WFInvokeWS throw error:Unknown Part 'http://www.Test.com/schema/esb/rms:RMSResponse'  for operation 'QueryMSISDN' exists in SOAP message.(SBL-EAI-04304)
Error invoking service 'Outbound Interface Service', method 'InvokeWS' at step 'WFInvokeWS'.(SBL-BPR-00162)
--
Unknown Part 'http://www.Test.com/schema/esb/rms:RMSResponse'  for operation 'QueryMSISDN' exists in SOAP message.(SBL-EAI-04304)
返回的第一层元素名字与实际IO的RootIC名字不一致。

问题10

Error running sub-process 'Outbound Interface Process' at step '123'.(SBL-BPR-00183)
--
Error instantiating process definition 'Outbound Interface Process' 
with a search specification:

Process is not associated with a business object.(SBL-BPR-00110)
 定义了一个入参“SearchSpec”,这个参数会导致Workflow必须对应一个BO,估计是触发了隐藏参数,把这个入参名字修改后问题解决。

问题11

WFInvokeWS throw error:Fatal Error in XML Parser at line 8, column 63: Expected whitespace(SBL-EAI-00247)
Error invoking service 'Outbound Interface Service', method 'InvokeWS' at step 'WFInvokeWS'.(SBL-BPR-00162)
访问服地址错误,导致返回的完全是空。

问题12

---------------------------
Siebel
---------------------------
WFInvokeWS throw error:Operation 'QueryYYYSub' of Web Service 'http://www.Test.com/schema/wsdl/esb/webservice/server/queryyyysub.QuerySYSSubInterfaceService' 
at port 'QuerySYSSubInterfacePort' failed with the following explanation: "Missing operation for soapAction [Query] and 
body element [Query] with SOAP Version [SOAP 1.1]".(SBL-EAI-04308)(SBL-EXL-00151)(SBL-EXL-00151)
遇到一次:典型的Web Service再通过代理BS调用接口时,请求报文结构类似(Property Set):
<?xml version="1.0" encoding="UTF-8"?>
<?Siebel-Property-Set EscapeNames="true"?>
<PropertySet>
<MessageType_clnRequestIOName MessageId="" IntObjectName="RequestIOName" MessageType="Integration Object" IntObjectFormat="Siebel Hierarchical">
<ListOfRequestIOName>
<RequestIOName>
......
</ListOfRequestIOName>
</MessageType_clnRequestIOName>
</PropertySet>
如果这个PropertySet的Root元素不是一个空的,而是MessageType_clnRequestIOName代替,也就是少了第一层结构,就会出现这样的错误。

这仅仅是该问题出现的可能性之一。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值