я опубликовала API в WSO2AM
и URL показано в магазине является https://{ip}:8243/phoneverify/1.0.0
Как Invoke API в WSO2_AM от службы WSO2_ESB Proxy
Теперь то, что я пытаюсь сделать, это вызвать это от службы ESB прокси (который будет позже вызывается планировщиком) следующим образом,
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="a"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<send>
<endpoint>
<http method="get"
uri-template="https://{ip}:8243/phoneverify/1.0.0/CheckPhoneNumber">
<timeout>
<duration>30000</duration>
<responseAction>fault</responseAction>
</timeout>
</http>
<property name="Authorization"
value="Bearer aaa4663b5851e06f2f1bc6e871fd20b7"
scope="axis2"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level="full"/>
</outSequence>
</target>
<description/>
</proxy>
Но когда я пытаюсь это дает org.apache.axis2.AxisFault: Read timed out
и на сервере
[2015-03-20 08:50:48,481] INFO - LogMediator To: /services/a.aHttpSoap12Endpoint, WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:ce224d0e-f158-458c-b0be-ffeb09198e47, Direction: request, Envelope: <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body></soapenv:Body></soapenv:Envelope>
[2015-03-20 08:50:48,500] INFO - TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout action, after the specified or optional timeout
[2015-03-20 08:50:49,289] ERROR - TargetHandler I/O error: Host name verification failed for host : {ip}
javax.net.ssl.SSLException: Host name verification failed for host : 52.74.66.119
at org.apache.synapse.transport.http.conn.ClientSSLSetupHandler.verify(ClientSSLSetupHandler.java:152)
at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:285)
at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:380)
at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:118)
at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:160)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:342)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:320)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:604)
at java.lang.Thread.run(Unknown Source)
[2015-03-20 08:50:49,320] WARN - EndpointContext Endpoint : AnonymousEndpoint will be marked SUSPENDED as it failed
[2015-03-20 08:50:49,320] WARN - EndpointContext Suspending endpoint : AnonymousEndpoint - current suspend duration is : 30000ms - Next retry after : Fri Mar 20 08:51:19 UTC 2015
Я мог бы использовать API, используя Chrome Advanced Rest Client
. Поэтому что я делаю неправильно, вызывая это через прокси-сервис?
Что такое '/ services/TesAM'? также может заменить '{ip}' для реального значения и удалить '' просто для тестирования. Включите Tcpmon, чтобы проверить сообщение исходящего запроса WSO2 ESB на WSO2 AM. –
Chilcano
Извините за ошибку, журнал исправлен, {ip} намеренно заменит оригинал –
А, почему ' ' находится внутри ' '?, Должно быть между' 'и' ', no ?. –
Chilcano