on 11-08-2011 4:13 PM
We have implemented aABAP webservice on NW 7.0 SP 21 with basic logon
Our system uses four appservers with a Sap Webdispatcher running in front of them as a load balancer
and external access is via Apache Reverse proxy pointing to the Sap Web dispacher
The Reverse proxy is in the DMZ zone and the Web Dispatcher is inside the firewall
The problem is that if we try to use the Web Service via the Preverse proxy
http://balancer.domain.com:81/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a
We get the error
HTTP/1.1 500 SRT: Unexpected failure in SOAP processing occurred:
("No configuration for this HTTP server instance")
But if we go directly to the Load balancer the Web service works
http://balancer.domain.com:81/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a
or if we go directly to the app server
http://sapserv1.domain.com:80/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a
...
....
http://sapservn.domain.com:80/sap/bc/srt/rfc/sap/zping_no_a/020/zping_no_a/zping_no_a
The strange thing is that we are already using two distinct BSP Abap web pages without any problem throught the Reverse proxy.
Hi,
Did you set these directives
ProxyPreserveHost on
RequestHeader set ClientProtocol xxxx
RequestHeader set x-sap-webdisp-ap HTTPS=xxx
in the Apache config file ?
Regards,
Olivier
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
this is what my reverse proxy config file looked like before
RewriteEngine on
RewriteRule ^/(sap\(.*) http://sapgw.domain.com:81/$1 [P,L]
ProxyPass /sap http://sapgw.domain.com:81/sap
ProxyPassReverse /sap http://sapgw.domain.com:81/sap
And here is a sample of Request - Response headers on the SAP Web Dispatcher with that config
- Http: Request, GET /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ Command: GET + URI: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 Host: sapgw.domain.com:81 UserAgent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 DNT: 1 + Cookie: fpc1000393861811=xBnnx8SL|UEGhWyFLaa|fses1000393861811=|h3Osku4Kaa|xBnnx8SL|fvis1000393861811=Zj1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRnBvc3RzdG9kJTJGaGphbHAlMkZBZGFsc2lkYS5odG1sJnQ9aHR0cCUzQSUyRiUyRnd3dy5wb3N0dXIuaXMlMkZwb3N0c3RvZCUyRiZiPSVDMyU4RHNs - Http: Response, HTTP/1.1, Status: Internal server error, URL: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 StatusCode: 500, Internal server error Reason: SRT: Unexpected failure in SOAP processing occurred: ("No configuration for this HTTP server instance") - ContentType: text/html MediaType: text/html ContentLength: 0 Server: SAP Web Application Server (1.0;700) HeaderEnd: CRLF
After adding your suggested config
RewriteEngine on
RewriteRule ^/(sap\(.*) http://sapgw.domain.com:81/$1 [P,L]
ProxyPass /sap http://sapgw.domain.com:81/sap
ProxyPassReverse /sap http://sapgw.domain.com:81/sap
ProxyPreserveHost on
RequestHeader set ClientProtocol http
RequestHeader set x-sap-webdisp-ap HTTP=80,HTTPS=443
The Request header changed, but it did not help the situation, the response is still a 500 Error message
- Http: Request, GET /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ , Using Basic Authorization Command: GET + URI: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 Host: www.domain.com accept: text/html, application/xhtml+xml, / accept-language: is UserAgent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) accept-encoding: gzip, deflate + Cookie: fpc1000393861811=VfKJXFUs|VLNmXeCLaa|fses1000393861811=|nGeLO2yLaa|VfKJXFUs|fvis1000393861811=ZT1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRmRlc2t0b3BkZWZhdWx0LmFzcHglMkZ0YWJpZC01MTclMkYmZj1odHRwJTNBJTJGJTJGd3d3LnBvc3R1ci5pcyUyRm5hZm5hbGlzdGklMkZiYWV0YVZp + Authorization: Basic via: 1.1 37CC8F3C (IWSS), 1.1 www.domain.com clientprotocol: http x-sap-webdisp-ap: HTTP=80,HTTPS=443 x-forwarded-for: 10.200.10.52, 192.168.17.134 x-forwarded-host: www.domain.com x-forwarded-server: www.domain.com Connection: close HeaderEnd: CRLF - Http: Response, HTTP/1.1, Status: Internal server error, URL: /sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/ ProtocolVersion: HTTP/1.1 StatusCode: 500, Internal server error Reason: SRT: Unexpected failure in SOAP processing occurred: ("No configuration for this HTTP server instance") - ContentType: text/html MediaType: text/html ContentLength: 0 Server: SAP Web Application Server (1.0;700) HeaderEnd: CRLF
So for some Reason I can not proxy request to the SOAP processor via the proxy, but BSP web pages work without a problem ?
If the Host name in the Request header dosen't match the SAP server name the SOAP processor Gives an error ?
Hello,
Your test is wrong ! I see a GET http command. It seems that you are using a web browser to test the web service URL.
A web browser is NOT a web service client and will always generate an HTTP 500 error.
For testing you have to use a web service client utility like SAP Web Service Navigator or the excellent freeware SOAPUI.
Regards,
Olivier
EUREKA
I figured out what the problem was
The actual problem was with the path ending on slash caracter i.e "/"
Also this SOAP Address works
https://www.domain.com/sap/bc/srt/rfc/sap/zphreg/020/zphreg/zphreg/HTTP/1.1
User | Count |
---|---|
88 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.