Как вызвать файл скрипта python из прокси-сервиса wso2.
Мы попытались с помощью посредника отправки вызвать файл сценария Python, который находится на моей локальной машине.
<?xml version = "1.0" encoding = "UTF-8"?>
<proxy xmlns = "http://ws.apache.org/ns/synapse"
name = "FilepythonTest"
transports = "http https"
startOnLoad = "true">
<description/>
<target >
<inSequence>
<send>
<endpoint>
<address uri = "local:///Users/vikashsaharan/Desktop/python/testpy.py"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log level = "full"/>
</outSequence>
</target>
</proxy>
Мы не можем дозвониться с этим звонком. Пожалуйста, помогите мне, как я могу вызвать скрипт Python из wso2
Вы можете использовать медиатор класса и выполнить оттуда скрипт Python. Ниже приведен пример посредника класса, который сделает это.
public boolean mediate(MessageContext context) {
String command = "python /path/to/script.py";
try {
Process p = Runtime.getRuntime().exec(command);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String ret = in.readLine();
System.out.println("value is : "+ret);
} catch (IOException e) {
// handle exception
}
return true;
}
Вы можете сослаться на Запуск файла .py из Java
WSO2 EI имеет встроенную возможность выполнять скрипт Python с использованием Скриптовый посредник. Ниже приведен пример конфигурации.
**sample api configuration**
<api xmlns = "http://ws.apache.org/ns/synapse" name = "api" context = "/api-context">
<resource methods = "POST GET">
<inSequence>
<log level = "full">
<property name = "Message" value = "Before transformation"/>
</log>
<script language = "py" key = "conf:/repository/script/stockquoteTransformResponse.py" function = "transformRequest"/>
<log level = "full">
<property name = "Message" value = "After transformation"/>
</log>
<respond/>
</inSequence>
</resource>
</api>
**stockquoteTransformResponse.py file saved in carbon registry.**
from org.apache.synapse.util.xpath import SynapseXPath
def transformRequest(mc):
symbolXPath = SynapseXPath("//*[local-name()='Code']/text()")
symbol = symbolXPath.stringValueOf(mc)
mc.setPayloadXML('''
<m:getQuote xmlns:m = "http://services.samples">
<m:request>
<m:symbol>''' + symbol + '''</m:symbol>
</m:request>
</m:getQuote>''')
Нам нужно добавить jython jar в каталог WSO2EI_HOME/библиотека. Это было протестировано с jython-2.2.1.jar из http://central.maven.org/maven2/org/python/jython/2.2.1/jython-2.2.1.jar.
Следующий вывод можно увидеть, как только мы вызовем вышеуказанный API.
мы можем использовать только для набора полезной нагрузки или каждой функциональности Python.