Hur man konsumerar en enkel Java Web tjänst från C++(Legacy) & Java-program
Apache Tomcat(on WIndows7 in my case)
Apache Axis(on WIndows7 in my case)
GSoap (på Redhat körs på Virtual Box i mitt fall)
Video:
Skriv först en funktionalitet som du vill att konsumeras av en JAVA/c ++ application som en webbtjänst och spara den som *.jws i din axel installation direktör (\Tomcat 7.0\webapps\axis). Efter detta kör http:///axis/EncryptDecrypt.jws?wsdl i din webbläsare för att testa wsdl.
EncryptDecrypt.jws
allmän klass EncryptDecrypt {
offentliga sträng encDec (String _inpDat) {
String _outDat = ny String();
int j = 1;
IF(_inpDat.charAt(0)!='#')
{
_outDat += "#";
j = 0;
}
för (int jag = j; i < _inpDat.length();i++)
{
_outDat += _inpDat.charAt(0) == '#'? (char) ((int)_inpDat.charAt(i)-1):(char)((int)_inpDat.charAt(i)+1);
}
återvända _outDat;
}}
För det andra, vi designar klientprogrammet i JAVA/C++
JavaWebClient.java
import org.apache.axis.client.Call;
allmän klass JavaWebClient {
Sträng med offentlig huvudsakliga (String args) kastar undantag {
Sträng url="http:///axis/EncryptDecrypt.jws";
Ring data = nya Call(url);
Sträng val = (String)data.invoke ("","encDec", nya objekt [] {arg}); encDec är namnet på funktionen från EncryptDecrypt.jws
returnera val;
}
}
För C++-klienten måste du utföra följande steg på konsolen:
wsdl2h -o EncryptDecrypt.h http://:8080/axis/EncryptDecrypt.jws?wsdl (detta kommer att generera en header-fil från wsdl-fil)
soapcpp2 -i - C-jag / import EncryptDecrypt.h (detta kommer att generera cpp filer som behövs för att kalla webservice)