私は、特別なフィールドに含まれるapi送信パラメータからサンプルを持ち、api invoke proxyサービスを使用しています。プロキシバックグラウンド解析エラーです。esb wso2 4.8.1プロキシサービス分析soap xmlエラー、xmlに特殊な文字が含まれています
サンプルAPIコード:
<api xmlns="http://ws.apache.org/ns/synapse" name="eva_data" context="/kdmService/rest/2.0/evaluation/data/current/kksCodes">
<resource methods="POST">
<inSequence>
<log level="full">
<property name="kks=============" expression="$body/mediate/*[substring(name(),1,8)='kksCodes']"></property>
</log>
<property name="kks" expression="$body/mediate/*[substring(name(),1,8)='kksCodes']"></property>
<header name="kksCodes" scope="transport" expression="get-property('kks')"></header>
<call>
<endpoint>
<address uri="http://127.0.0.1:8280/services/searchMultiEvaData" format="pox"></address>
</endpoint>
</call>
<respond></respond>
</inSequence>
</resource>
</api>
要求アドレス:
http://localhost:8080/kdmService/rest/2.0/evaluation/data/current/kksCodes
リクエストパラメータ:
kksCodes[]="EB001HP1MEJ01ME029BL01J1CB001BB01"
サンプルプロキシコード:APIは、プロキシサービス、バックグラウンド誤差を呼び出す
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="searchMultiEvaData"
transports="https,http,local"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full">
<property name="kksCode" expression="get-property('transport','kksCodes')"/>
</log>
<property name="uri.var.kksCodes"
expression="get-property('transport','kksCodes')"/>
<property name="uri.var.isPathVariable" value="false"/>
<call>
<endpoint key="searchEvaKksAddressPoint"/>
</call>
<enrich>
<source type="body" clone="true"/>
<target type="property" property="_payload"/>
</enrich>
<log>
<property name="payload1" expression="get-property('_payload')"/>
</log>
<property name="payload" expression="get-property('_payload')"/>
</inSequence>
<outSequence>
</outSequence>
</target>
<description/>
</proxy>
。コンソール出力誤差:
[2016-04-15 11:34:47,144] INFO - LogMediator To: /kdmService/rest/2.0/evaluation/data/current/kksC
odes, MessageID: urn:uuid:950bf641-c481-4527-8266-e535e906d6bf, Direction: request, kks============
= = EB001HP1MEJ01ME029BL01J1CB001BB01, Envelope: <?xml version="1.0" encoding="utf-8"?><soapenv:Env
elope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><mediate><kksCodes%5B%5
D>EB001HP1MEJ01ME029BL01J1CB001BB01</kksCodes%5B%5D></mediate></soapenv:Body></soapenv:Envelope>
[2016-04-15 11:34:47,151] ERROR - NativeWorkerPool Uncaught exception
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,19
]
Message: 元素类型 "kksCodes" 必须后跟属性规范 ">" 或 "/>"。
\t at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
\t at org.apache.axiom.om.impl.llom.OMElementImpl.buildNext(OMElementImpl.java:653)
\t at org.apache.axiom.om.impl.llom.OMElementImpl.getFirstOMChild(OMElementImpl.java:670)
パラメータxml形式:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
\t \t <soapenv:Body>
\t \t \t <mediate>
\t \t \t \t <kksCodes[]>EB001HP1MEJ01ME029BL01J1CB001BB01</kksCodes[]>
\t \t \t </mediate>
\t \t </soapenv:Body>
</soapenv:Envelope>
私が思うには、kksCodes []解析エラーですが、私は解決するかわかりませんそれ。助けて!ありがとう!
nobady know that? – Pourquoi