I'm trying to call a web service from a Mirth Channel transformer javascript using apache axis library (which it's supposed to be deployed with Mirth). I've tried using the following java script, but it does not work:
/*importPackage(java.net);
importPackage(org.apache.axis.client.Call);
importPackage(org.apache.axis.client.Service);
importPackage(javax.xml.namespace.QName);*/
var endpoint = 'http://tempuri.org/IService1/';
var service = org.apache.axis.client.Service();
var call = service.createCall();
call.setTargetEndpointAddress( new URL(endpoint) );
call.setOperationName(new QName('http://soapinterop.org/', 'SayHello'));
var ret = call.invoke('John Doe');
Any idea?
Thanks.
Answer:
- Auto-generate service client proxy with Axis WDSL2Jave tool
- Build a JAR archive with the auto-generated classes
- Copy the JAR file in %MirthInstallPath%/lib/custom
- Re-start Mirth service
- Create a transformer JavaScript with the following code (in this example the WS is called Service1, a sample WS coded with .NET):
var locator = new Service1Locator(); var wsdlURL = new URL('http://localhost:8731/Design_Time_Addresses/HelloWorldWS/Service1')); var proxy = locator.getBasicHttpBinding_IService1(wsdlURL); var result = proxy.sayHello("John Doe"); // use result to whatever message mapping you need to perform
That's all.
来源:https://stackoverflow.com/questions/2147983/mirth-connect-javascript-to-call-a-webservice