Ciao a tutti,
voglio realizzare un webservice con Axis C++ su Linux (Ubuntu 9).
Ho seguito come riferimento il tutorial di esempio Calculator.
Ho utilizzato:
- Axis C++: axis-c-linux-current-bin.
- Xerces (parser xml): xerces-c2_2_0-linux8.0gcc32
- Apache 2: httpd-2.0.64.
e ho utilizzato Eclipse per creare la libreria libCalculator.so e il client di test.
Il problema appare lato server. Dopo che compilo viene visualizzato il seguente messaggio di errore:codice:#include "Calculator.hpp" #include <stdio.h> int main() { Calculator c; int result = c.add(20,40); printf("result is = %d\n", result); return 0; }
"terminate called after throwing an instance of 'axiscpp::SoapFaultException'
what(): Cannot deserialize the requested element"
Inoltre visualizza anche il seguente messaggio di warning:
"/usr/bin/ld: warning: libstdc++.so.5, needed by /usr/lib/gcc/i486-linux-gnu/4.
4.1/../../../../lib/libaxis_client.so, may conflict with libstdc++.so.6"
Esaminando il file di log...
visualizza come messaggio di errore "AxisEngineException:Library loading failed"codice:<?xml version='1.0' encoding='utf-8' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <ns1:add xmlns:ns1="http://localhost/axis/Calculator"> <in0 xsi:type="xsd:int">20</in0> <in1 xsi:type="xsd:int">40</in1> </ns1:add> </SOAP-ENV:Body> </SOAP-ENV:Envelope> .... .... <?xml version='1.0' encoding='utf-8' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring>Library loading failed</faultstring> <faultactor>server name:listen port</faultactor> <detail><appSpecific>AxisEngineException:Library loading failed</appSpecific> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Per quanto riguarda i file di configurazione,
server.wsdd:
codice:<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/C" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP"> <service name="Calculator" provider="CPP:RPC" description="Simple Calculator Axis C++ Service "> <parameter name="className" value="/usr/local/axiscpp_deploy/webservices/libCalculator.so" /> <parameter name="allowedMethods" value="add sub mul div "/> <parameter name="operationRequestMap" value="add:addRequest sub:subRequest mul:mulRequest div:divRequest "/> </service> </deployment>
axiscpp.conf:
Non capisco come mai non va... Potete darmi un consiglio?codice:Transport_http:/usr/local/axiscpp_deploy/lib/libhttp_transport.so Channel_HTTP:/usr/local/axiscpp_deploy/lib/libhttp_channel.so XMLParser:/usr/local/axiscpp_deploy/lib/libaxis_xmlparser.so WSDDFilePath:/usr/local/axiscpp_deploy/etc/server.wsdd LogPath:/usr/local/axiscpp_deploy/log/AxisLog ClientLogPath:/usr/local/axiscpp_deploy/log/AxisClientLog
Vi ringrazio in anticipo.
Betty

Rispondi quotando