Hello.
I transferred a v.6.16 installation to another web host.
When I logged in as admin then clicked on modules et al, the following message (abbreviated) displayed and made it where the admin pages were no longer accessible unless I used the back button until I reached an earlier page:
(Note: I'm typing this from paper copy versus copy/paste since it is no longer on screen)
~~~~~~~~~~~~~~~
Fatal error: Uncaught SoapFault exception: [WSDL] SOAT-ERROR: Parsing WSDL. Couldn't load from 'https://api.verticalresponse.com/wsdl/1.0/VRAP.wsdl' : Start tag expected, '<' not found in /usr/home/account/public_html/.../all/modules/vr/vr.module:138 Stack trace: #0 /usr/.../vr/vr.module(138):
SoapClient->SoapClient('https://api.ver...') #1 ........
~~~~~~~~~~~~~~~
The only solution to prevent the module from being detected was to change the module name but the name couldn't be e.g. 'vr--', it had to be something like '.vr'. Then I could access all of the administer pages.
Thanks.
| Comment | File | Size | Author |
|---|---|---|---|
| #3 | vr-wsdl-754702.patch | 1.35 KB | aaronbauman |
Comments
Comment #1
jbomb commentedThanks for the report. I've encountered this error before. I think it has something to do with the server configuration for SSL or CURL. I don't remember the specifics. Anyway, I believe the work-around is to download the .wsdl file and host it locally. The SOAP instantiation should be wrapped in a try catch directive to avoid that WSOD.
I'll roll a patch.
[edit]
Here a relevant PHP bug report. A specific explanation of the problem exists at the end of the thread.
There is another thread here.
Hope this helps.
Comment #2
jbomb commentedHave you tried hosting the .wsdl file (https://api.verticalresponse.com/wsdl/1.0/VRAPI.wsdl) locally and changing the following in vr.module
Or have you had any luck resolving this issue otherwise? I'm not sure how to patch the module as this seems to be a server configuration issue.
Comment #3
aaronbaumanAttached patch does 2 things:
1. Tries to load a local wsdl in root vr directory (as in comment #2). If no local wsdl exists, tries to load the remote wsdl.
2. Wraps SoapClient instantiation in try-catch block.
Comment #4
drupert55 commentedHello folks and thanks for providing the info.
I'm trying to get back to this as soon as I can. I have to finish the initial stage of a project first. I did check and WSDL is stored on the server.
Thanks.
Comment #5
jbomb commentedComment #6
brewern commentedI can confirm this patch works. However after applying the patch I discovered the reason I was getting the fatal error to begin with. The error was a result of not having SSL support in the build of PHP. Essentially I had to enable SSL support. Then it worked!
Comment #7
aaronbaumanThis is (finally) into dev.