RE: viewing wsdls in browser
I had this problem, and it turned out that I had set AXISCPP_DEPLOY in my httpd init script, but had forgotten to export it. The code that looks for the wsdl filesdoesn't check for errorswhen itgets AXISCPP_DEPLOY and so segfaults. I also had problems with axis not setting the correct mime type for wsdl files. This caused Firefox to attempt to display them as HTML. I coded and submitted a fix for that, but I don't know if it ever got into the mainstream distro. From: Xavier Toth [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 14, 2005 2:30 PMTo: Apache AXIS C User ListSubject: Re: viewing wsdls in browser You meant '$AXISCPP_DEPLOY/wsdls', right? I'm running Axis C++ 1.5 on Apache2 on Fedora Core 4. On 9/15/05, Samisa Abeysinghe [EMAIL PROTECTED] wrote: Xavier Toth wrote: I've run the samples in apache2 but then I tried to view the wsdls in a browser and it doesn't work. In the apache error log I see a segmentation violation which I'm sure is related to the axis c++ module. The axis server log contains the following: [14/09/2005 11:11:33:000 CDT] 1 - process_request 0x9d682d0 [FFD0FF82FFD60901001500FF80FFF44A00] ..J. [14/09/2005 11:11:33:000 CDT] 1 AxisConfig getAxisConfProperty @0x9c91120,[0400] [14/09/2005 11:11:33:000 CDT] 1 AxisConfig getAxisConfProperty @0x9c91120,@1 null Has this worked for others?hmm... This is strange. It should be working, if you have the wsdl file in $AXISCPP_DEPLOY/wsdl folder.What is the version you are using? On which platform?Samisa...
RE: Can't build 1.5 source - .deps not there
Title: RE: Can't build 1.5 source - .deps not there Haven't tried ant. I did install Javaon this machine (to run wsdl2ws), but have never played with ant (or Java for that matter). Anyway, editing (painfully) all the .deps stuff allowed it to build with make on my system. The only component I installed was the apache2 module, and that linked and worked. I guess if I have problems in the future, I'll try to figure out how to use ant. Thanks, Rob From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 24, 2005 10:52 PMTo: Apache AXIS C User ListSubject: RE: Can't build 1.5 source - .deps not there Please note that the Makefile.am files are not up-to-date in 1.5 release. (May be it builds half way, but may not link all the stuff correctly ) Only the ant build works properly. Have you tried building with ant? Samisa -Original Message-From: Yampolsky, Robert [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 24, 2005 11:44 PMTo: Yampolsky, Robert; axis-c-user@ws.apache.orgSubject: RE: Can't build 1.5 source - .deps not there So, looking at the Makefile's I guess these .deps directories are supposed to be generated on the fly by make running the 'depcomp' script. I'm running RHEL 3.0, but somebody here patched the system to load the 2.96 gcc toolset as required by Oracle 9 for its installation. I undid the symlinks between gcc-gcc295 and g++-g++296 to point them to the gcc323 and g++323 versions, but I'm guessing that depcomp is using other parts of the toolchain that are inconsisten, missing or whatever. I've been able to get the makefiles to run by editing out all the DEPS stuff, and I suppose that's alright, since I assume this is just for automatic dependency detection. So, bottom line, my question is this: Am I looking for trouble getting Axis C++ to run on an RHEL 3.0 system that has this hybrid compiler set? Is it possible that other problems I've been having (can't get ?wsdl URL's to work) could be related to this? Thanks, Rob _ From: Yampolsky, Robert Sent: Monday, May 23, 2005 12:02 PM To: 'axis-c-user@ws.apache.org' Subject: Can't build 1.5 source - .deps not there I'm trying to build axisc++ from the 1.5.0 source. Configure ran okay, but make reports failed attempts to access stuff in .deps subdirectories. They're not there. Is the source tarball bad, or is there something I can do at .configure time to make it not try to access these .deps subdirs? R o b Y a m p o l s k y Harris Corporation [EMAIL PROTECTED] (212) 303 - 4250
Can't build 1.5 source - .deps not there
Title: Can't build 1.5 source - .deps not there I'm trying to build axisc++ from the 1.5.0 source. Configure ran okay, but make reports failed attempts to access stuff in .deps subdirectories. They're not there. Is the source tarball bad, or is there something I can do at .configure time to make it not try to access these .deps subdirs? R o b Y a m p o l s k y Harris Corporation [EMAIL PROTECTED] (212) 303 - 4250
RE: list of deployed web services
Yes, I do have the files in the wsdls folder. I'm just trying to get it to display the wsdl for the standard services that come with the distribution (calculator, array, etc). Axis generates the service list page correctly when I access http://localhost/axis, and I looked at the code, which seems to be scanning the wsdls folder to generate that page, so they're definitely there. The code to process the ?wsdl URL's looks simple enough, but it's apparently segfaulting. I notice that this code has changed between versions 1.4 and 1.5. Anyway, for some reason Apache isn't generating a core dump (that I can find) when it segfaults. Is there a way to get axis to dump debugging info to a log. I see that there's a log file specified in the axiscpp_deploy/etc/axiscpp.conf file, but how do you turn on logging? Am I right in guessing that the following code from Axis.cpp in the 'engine' directory is what's supposed to list the wsdl file (the second 'else' clause)? Anybody see anything that could segfault there? // Handle the GET method else if (AXIS_HTTP_GET == pStream-getSubProtocol()) { // get the uri path // i.e /abc/xyz/ part of http://somehost/abc/xyz/ string sUriWOAxis = pStream-getTransportProperty(SERVICE_URI); string sServiceName; bool bNoExt = true; if (sUriWOAxis == /) { bNoExt = false; sUriWOAxis = ; } if (sUriWOAxis.empty ()) { ...generate web page listing all deployed services. } else { sServiceName = g_pConfig-getAxisConfProperty(AXCONF_AXISHOME); sServiceName += WSDLDIRECTORY + sUriWOAxis + .wsdl; // Check whether wsdl file is available if ((WsddFile = fopen (sServiceName.c_str (), r)) == NULL) { pStream-sendBytes(h3Url not available/h3, NULL); Status = AXIS_SUCCESS; // Handle the error } else { int charcount = 0; while ((charcount = fread (ReadBuffer, 1, BYTESTOREAD - 1, WsddFile)) != 0) { *(ReadBuffer + charcount) = '\0'; pStream-sendBytes(ReadBuffer, NULL); } Status = AXIS_SUCCESS; fclose (WsddFile); } } } -Original Message- From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 10, 2005 11:39 PM To: Apache AXIS C User List Subject: RE: list of deployed web services Do you have the wsdl files in $AXISCPP_DEPLOY/wsdls folder? BTW, Simple Axis server does not support this ?wsdl URLs. It only works with Apache. Also note that, Axis C++ engine is not capable of generating the WSDL for the service. Rather it gives out the WSDL file stored in $AXISCPP_DEPLOY/wsdls folder. Thanks, Samisa... -Original Message- From: Yampolsky, Robert [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 10, 2005 9:52 PM To: Apache AXIS C User List Subject: RE: list of deployed web services Not true. The URL's in the front page have /axis in them (I'm using 1.5). Same thing happens when I click the front page links or type the URL's manually. I don't see any core files generated by the Apache segfault, so I can't determine why it's segfaulting. I tried to access a wsdl URL through simple_axis_server, but that just hangs (browser gets no response). Don't know if that's supposed to work, but I thought that if it did and it segfaulted, I'd stand some chance of debugging it. I'm assuming that the following in my httpd.conf file is all I need to do to map the localhost/axis path to the true axis location and that the axis handler is responsible for translating the ?wsdl to the wsdls subdirectory. LoadModule axis_module modules/libaxiscpp_mod2.so Location /axis SetHandler axis /Location -Original Message- From: Tony Dodd [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 10, 2005 11:32 AM To: 'Apache AXIS C User List' Subject: RE: list of deployed web services It's simply got the wrong url coded in the Axis front page, if you look at Axis.cpp someone has commented out the line that adds /axis (line 235 in 1.4). If you enter http://localhost/axis/array?wsdl in the url combo explicitly it should work. Tony Dodd Oxford University Research Technologies (Xaira) -Original Message- From: Yampolsky, Robert [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 16:09 To: Apache AXIS C User
RE: soapAction and .NET interoperability
Does Axis require the SOAPAction to be formatted with a '#' separating the service and method? All the Microsoft documentation I've Googled about setting SOAPAction from their stuff shows it formatted like a URL with a slash setting off the method. Would Axis reject this? By the way, I haven't actually tested with a .NET client. I'm just assuming they don't send SOAPAction, because the WSDL I was given to implement was generated with .NET tools, and it had soapAction=. I couldn't get my Axis-to-Axis code to work until I filled in at least #method there (the service name doesn't seem to be necessary). -Original Message- From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 11, 2005 12:03 AM To: Apache AXIS C User List Subject: RE: soapAction and .NET interoperability Does anybody know of a workaround for this? Either a way to define my service to not require soapAction or a way to get a .NET client to provide the method name in the soapAction header? There is no way in Axis C++ to define the service not to require the SOAPAction as of now. (But we wish to implement such kind of a mechanism - there is a Jira issue raised on this) Hence I think you have to figure out how to set the SOAPAction with .net client. I am not sure how to do this exactly but http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/h tml/frlrfSystemRuntimeRemotingMetadataSoapMethodAttributeClassSoapAction Topic.asp may lead to a clue. Thanks, Samisa... -Original Message- From: Yampolsky, Robert [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 11, 2005 2:39 AM To: Apache AXIS C User List Subject: soapAction and .NET interoperability I've seen posted here that Axis services don't work with soapAction set to . I can verify that that's the case. With no soapAction, I get a Soap method is not allowed to invoke exception, but when I put it in, I'm able to access the service. As a matter of fact, it seems to only require the method (i.e. soapAction=#METHOD works just as well as soapAction=SERVICE#METHOD). My problem is that I need to interoperate with .NET clients, and they don't seem to set soapAction (at least by default). Does anybody know of a workaround for this? Either a way to define my service to not require soapAction or a way to get a .NET client to provide the method name in the soapAction header? Thanks, Rob
RE: list of deployed web services
Not true. The URL's in the front page have /axis in them (I'm using 1.5). Same thing happens when I click the front page links or type the URL's manually. I don't see any core files generated by the Apache segfault, so I can't determine why it's segfaulting. I tried to access a wsdl URL through simple_axis_server, but that just hangs (browser gets no response). Don't know if that's supposed to work, but I thought that if it did and it segfaulted, I'd stand some chance of debugging it. I'm assuming that the following in my httpd.conf file is all I need to do to map the localhost/axis path to the true axis location and that the axis handler is responsible for translating the ?wsdl to the wsdls subdirectory. LoadModule axis_module modules/libaxiscpp_mod2.so Location /axis SetHandler axis /Location -Original Message- From: Tony Dodd [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 10, 2005 11:32 AM To: 'Apache AXIS C User List' Subject: RE: list of deployed web services It's simply got the wrong url coded in the Axis front page, if you look at Axis.cpp someone has commented out the line that adds /axis (line 235 in 1.4). If you enter http://localhost/axis/array?wsdl in the url combo explicitly it should work. Tony Dodd Oxford University Research Technologies (Xaira) -Original Message- From: Yampolsky, Robert [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 16:09 To: Apache AXIS C User List Subject: RE: list of deployed web services Doesn't work for me. http://localhost/axis does bring up a page with links to all the wsdl's, but when I click on any of those links I get a 503 error in my browser, and the Apache error log logs a segfault. Any idea how to debug this? -Original Message- From: Samisa Abeysinghe [mailto:[EMAIL PROTECTED] Sent: Monday, May 09, 2005 11:56 PM To: Apache AXIS C User List Subject: RE: list of deployed web services Hi, If you have the wsdl files in %AXISCPP_DEPLOY%\wsdls folder, you should get the ?wsdl thing working. http://localhost/axis/array?wsdl is the correct link (and it works on my machine) Also the calculator sample need three mandatory parameters: calculator.exe add 101 10 HTH Samisa... -Original Message- From: So Hok Chun, Bill [mailto:[EMAIL PROTECTED] Sent: Monday, May 09, 2005 9:30 PM To: axis-c-user@ws.apache.org Subject: list of deployed web services Dear All, With some help from people in the mailing list, I installed axis. And I can run some of the samples like array, base, rpcfault (but not calculator. I guess there should be some problem in that sample). About the http://localhost/axis page, there's a column WSDL in the table. The is like http://localhost/array?wsdl However, there's simply no such directory in my server. I tried http://localhost/axis/array?wsdl . But still doesn't work. The browser just return a blank page. What should the correct link look like? Thanks for your help. Yours, Bill
RE: Newbie questions and some weird behavior
One thing to figure out is to know whether the error is in generated code or in the user written code. Will have to generate the code and see. Okay. There's not much code, though. This is a trivial test of the service, and all it does is print out the input to a log file, copy back the input params as outputs and log them. The logged stuff looks ok: Here's the code: void HUB_TO_HUB::Hub_Request(xsd__string Value0, xsd__string Value1, xsd__string Value2, xsd__string Value3, xsd__string Value4, xsd__string Value5, xsd__string Value6, xsd__string Value7, AXIS_OUT_PARAM xsd__string *OutValue0, AXIS_OUT_PARAM xsd__string *OutValue1, AXIS_OUT_PARAM xsd__string *OutValue2, AXIS_OUT_PARAM xsd__string *OutValue3, AXIS_OUT_PARAM xsd__string *OutValue4, AXIS_OUT_PARAM xsd__string *OutValue5) { chartimestamp[100]; time_t clock; struct tm *tm; FILE*file; file = fopen(/home/rob/hub2hub/server/log, w+); fprintf(file, Input:\n TO_TP=%s\n FROM_TP=%s\n TO_HUB=%s\n FROM_HUB=%s\n UID=%s\n APIKEY=%s\n ROUTING=%s\n MESSAGE=%s\n, Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7); // Pass back caller's UID. *OutValue0 = Value4; // Pass back caller's FROM_TP as TO_TP. *OutValue1 = Value0; // Pass our hub ID as FROM_TP *OutValue2 = ABCD-EFGH-IJKL-MNOP; // Force status code of 0 (SUCCESS) for now *OutValue3 = 0; *OutValue4 = SUCCESS; // Send timestamp. clock = time((time_t *) 0); tm = localtime(clock); sprintf(timestamp, %04d-%02d-%02d %02d-%02d-%02d, tm-tm_year+1900, tm-tm_mon+1, tm-tm_mday, tm-tm_hour, tm-tm_min, tm-tm_sec); *OutValue5 = timestamp; fprintf(file, Output:\n UID=%s\n TO_TP=%s\n FROM_TP=%s\n STATUS=%s\n STATUS_MSG=%s\n TIMESTAMP=%s\n, *OutValue0, *OutValue1, *OutValue2, *OutValue3, *OutValue4, *OutValue5); fclose(file); }
RE: Newbie questions and some weird behavior
Will have a look at you wsdl and see if I could get it working. Please try simple axis server in the mean time. Thanks, Samisa... Thanks. I tried simple axis server with gdb, and was able to debug my server. It now is able to log its inputs and outputs, and they look basically right. But the client still gets null pointers for all of the results. Then I used tcpdump to look at the SOAP that was passed back and forth. I've included it below. It looks like the input is correct, but the response is screwed up. Instead of what I expect to get: MSG_RECPT UID/UID TO_TP/TO_TP etc. /MSG_RECPT I'm getting: MSG_RECPTUID/MSG_RECPTUID MSG_RECPTTO_TP/MSG_RECPTTO_TP etc. Also, the data between the bad XML tags is garbage. Interestingly, I get binary garbage that grows by 4 bytes for each subsequent result 'string'. Anyway, progress. Here's the TCP dump of the SOAP: POST /axis/HUB_TO_HUB HTTP/11 Host: 172 1648 246:80 Content-Type: text/xml; charset=UTF-8 SOAPAction: HUB_TO_HUB#Hub_Request Content-Length: 571 ?xml version='1 0' encoding='utf-8' ? SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas xmlsoap org/soap/envelope/ xmlns:xsd=http://3 org/2001/XMLSchema xmlns:xsi=http://www w3 org/2001/XMLSchema-instance SOAP-ENV:Body ns1:Hub_Request xmlns:ns1=http://localhost/axis/HUB_TO_HUB; ns1:TO_TPA/ns1:TO_TP ns1:FROM_TPB/ns1:FROM_TP ns1:TO_HUBC/ns1:TO_HUB ns1:FROM_HUBE/ns1:FROM_HUB ns1:UIDF/ns1:UID ns1:APIKEYG/ns1:APIKEY ns1:ROUTING/ns1:ROUTING ns1:MESSAGE/ns1:MESSAGE /ns1:Hub_Request /SOAP-ENV:Body /SOAP-ENV:Envelope HTTP/1 1 200 OK Date: Thu, 05 May 2005 18:26:37 GMT Server: Apache/2 0 46 (Red Hat) Content-Length: 689 Connection: close Content-Type: text/xml ?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:Hub_Response xmlns:ns1=http://localhost/axis/HUB_TO_HUB; MSG_RECPTUID/MSG_RECPTUID MSG_RECPTTO_TP/MSG_RECPTTO_TP MSG_RECPTFROM_TP/MSG_RECPTFROM_TP MSG_RECPTSTATUSamp/MSG_RECPTSTATUS MSG_RECPTSTATUS_MSGamp/MSG_RECPTSTATUS_MSG MSG_RECPTTIMESTAMP.amp.../MSG_RECPTTIMESTAMP /ns1:Hub_Response /SOAP-ENV:Body /SOAP-ENV:Envelope Here's my server.wsdd entry: service name=HUB_TO_HUB provider=CPP:DOCUMENT description=TVB Hub-to-Hub Service parameter name=allowedMethods value=Hub_Request / parameter name=className value=/usr/local/axiscpp_deploy/lib/libhub2hub.so / /service Here's the wsdl: ?xml version=1.0 encoding=utf-8? wsdl:definitions xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:s=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:tns=http://localhost/axis/HUB_TO_HUB; xmlns:tm=http://microsoft.com/wsdl/mime/textMatching/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; targetNamespace=http://localhost/axis/HUB_TO_HUB; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; wsdl:types s:schema elementFormDefault=qualified targetNamespace=http://localhost/axis/HUB_TO_HUB; s:element name=Hub_Request type=tns:HUB_IN / s:complexType name=HUB_IN s:sequence s:element minOccurs=0 maxOccurs=1 name=TO_TP type=s:string / s:element minOccurs=0 maxOccurs=1 name=FROM_TP type=s:string / s:element minOccurs=0 maxOccurs=1 name=TO_HUB type=s:string / s:element minOccurs=0 maxOccurs=1 name=FROM_HUB type=s:string / s:element minOccurs=0 maxOccurs=1 name=UID type=s:string / s:element minOccurs=0 maxOccurs=1 name=APIKEY type=s:string / s:element minOccurs=0 maxOccurs=1 name=ROUTING type=s:string / s:element minOccurs=0 maxOccurs=1 name=MESSAGE type=s:string / /s:sequence /s:complexType /s:schema s:schema elementFormDefault=qualified s:element name=Hub_Response nillable=true type=tns:MSG_RECPT / s:complexType name=MSG_RECPT s:sequence s:element minOccurs=0 maxOccurs=1 name=UID type=s:string / s:element minOccurs=0 maxOccurs=1 name=TO_TP type=s:string / s:element minOccurs=0 maxOccurs=1 name=FROM_TP type=s:string / s:element minOccurs=0 maxOccurs=1 name=STATUS type=s:string / s:element minOccurs=0 maxOccurs=1 name=STATUS_MSG type=s:string / s:element minOccurs=0 maxOccurs=1 name=TIMESTAMP type=s:string / /s:sequence /s:complexType /s:schema /wsdl:types wsdl:message name=Hub_RequestIn