当前位置: 首页 > 工具软件 > WSO2 WSF/PHP > 使用案例 >

Apache server fails to load axis2_http_sender.dll when wsf/php built with SSL enabled.

祁承望
2023-12-01

Apache server fails to load axis2_http_sender.dll when wsf/php built with SSL enabled.

Error message in the wsf php client Log:

[Fri Sep 05 12:08:31 2008] [error] ..\..\util\src\class_loader.c(167) Loading shared library C:\wsfphp\wso2-wsf-php-bin-2.0.0-win32\wsf_c/lib/axis2_http_sender.dll Failed. DLERROR IS DLL Load Error 182: 
[Fri Sep 05 12:08:31 2008] [error] ..\..\src\core\deployment\conf_builder.c(902) Transport sender is NULL for transport http, unable to continue
[Fri Sep 05 12:08:31 2008] [error] ..\..\src\core\deployment\conf_builder.c(261) Processing transport senders failed, unable to continue
[Fri Sep 05 12:08:31 2008] [error] ..\..\src\core\deployment\dep_engine.c(939) Populating Axis2 Configuration failed
[Fri Sep 05 12:08:31 2008] [error] ..\..\src\core\deployment\conf_init.c(195) Loading deployment engine failed for client repository C:\wsfphp\wso2-wsf-php-bin-2.0.0-win32\wsf_c

Steps to regenerate:

1. Install OpenSSL 0.9.8g from MSI
2. Install Apache server from apache_2.2.8-win32-x86-openssl-0.9.8g.msi
3. Build WSF/PHP with SSL enabled
4. Try running a sample

When we build wsf/php SSL disabled, everything works fine.

Problem occurs with Apache 2.2.6 and OpenSSL 0.9.8e as wel.


Axis2/C Windows binary package and OpenSSL

I deployed Axis2C (1.6.0, Windows binary distribution) on IIS 7.0 running on Windows Server 2008 but simple browser-based test (http://localhost/axis2/services) failed - I got HTTP error 500 in W3SVC log:

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2011-08-24 09:02:53 ::1 GET /axis2/services - 80 - ::1 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.0;+Trident/5.0) 500 0 0 421

Page in the browser displayed:

An IIS server error occurred 
An error occurred while initilizing Axis2/C.

Axis log file showed:

[error] ..\..\util\src\class_loader.c(167) Loading shared library C:\axis2c/lib/axis2_http_sender.dll Failed. DLERROR IS DLL Load Error 126: The specified module could not be found.

I used Process Explorer to find Axis2C DLLs loaded by IIS working process and here they are:

axiom.dll
axis2_engine.dll
axis2_parser.dll
axutil.dll
guththila.dll
mod_axis2_iis.dll
neethi.dll

Some of these modules failed to load axis2_http_sender.dll. I tried to reload aforementioned URL in order to wake up w3wp.exe and make it load Axis2C modules.  Process Monitor  was filtering w3wp.exe events and I could see that w3wp failed to find  libeay32.dll  (QueryOpen would return NAME NOT FOUND for all locations listed in PATH environment variable). This dll is a part of  OpenSSL  and is not included in original Axi2C binary package. I downloaded OpenSSL and, just for a test, placed libeay32.dll in  C:\axis2c\lib , where axis2_http_sender.dll resides. This time Process Monitor showed that  ssleay32.dll  could not be found. This file, just like libeay32, belongs to OpenSSL. I placed it in C:\axis2c\lib and repeated the test. Voila! I got the list of my services listed in the browser which proved that Axi2C was set properly. 

Process Explorer now shows the complete list of Axis2C DLLs loaded by w3wp.exe:

axiom.dll
axis2_engine.dll
axis2_http_receiver.dll
axis2_http_sender.dll
axis2_mod_addr.dll
axis2_mod_log.dll
axis2_parser.dll
axutil.dll
guththila.dll
libeay32.dll
ssleay32.dll
mod_axis2_iis.dll
neethi.dll

Conclusion:  Axis2C Windows distribution depends on OpenSSL DLLs  which are not included in binary package which can be downloaded from  Apache Axis2/C Releases page . OpenSSL must be installed separately. Unfortunately, this is not mentioned in  Axis2/C manual .

Note: upon installing OpenSSL on your system, path to its binaries (e.g. c:\openssl\bin) should be added to PATH environment variable. Make sure you restart machine after changing environment variables as IIS gets them only upon restart - it does not lookup their update values!

Note: If OpenSSL support is not required, download Axis2C source and built it with OpenSSL disabled ( --enable-openssl=no )

References and links:
Axis2/C built with SSL support. axis2_http_sender.dll fails to load
problems running default http server  
axis2/c depending on openSSL
re-distribute openSSL dlls with AXIS2/c and patent issue

 类似资料:

相关阅读

相关文章

相关问答