Hi,
I'm trying to create a Web Service integration Library component that connects to our ERP system. The ERP WS uses basic authenticaton and I have tested it with a SOAP testing application and the connection works fine there. When configuring the connection in Workflow WS WizardForm and testing any of the methods, I get a "The request failed with HTTP status 505: HTTP Version Not Supported." error message.
I have traced the communication between Workflow Manager and ERP and I believe that the problem is that the Workflow component doesn't send the authentication information in the HTTP header, even though the details are configured and validated earlier in the WizardForm. Below examples of network traces of the communication between ERP and SOAP Sonar application and Workflow Manager: (host and authorization content changed here, of course)
SOAP Sonar HTTP header:
POST /oil/services/customer.customerHttpSoap11Endpoint/ HTTP/1.1
User-Agent: Crosscheck Networks SOAPSonar
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:getCustomersWhere"
Authorization: Basic lkuhsdfofihliuhgsaduf=
Host: xxxxxxxxx:8880
Content-Length: 427
Connection: Keep-Alive
To this, ERP Ws repplies with the data requested and everything is fine.
But when the same is sent from Workflow:
Workflow HTTP header:
POST /oil/services/customer.customerHttpSoap11Endpoint/ HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.4952)
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:getCustomersWhere"
Host: xxxxxxxxx:8880
Content-Length: 347
Expect: 100-continue
When ERP WS receives the above request, it replies with a 401 Unathorized message:
HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
WWW-Authenticate: Basic realm="UserDatabase"
Content-Type: text/html;charset=utf-8
Content-Length: 954
Date: Thu, 07 Apr 2011 05:50:10 GMT
Workflow replies to this with a proper header, including the authentication information, BUT before that it has already sent the actualSOAP request:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<getCustomersWhere xmlns="http://xxx.xxxxx.xx/xsd">
<args1>attribute = 999999</args1>
</getCustomersWhere>
</soap:Body>
</soap:Envelope>
After this, Workflow sends the proper authentication HTTP header:
POST /oil/services/customer.customerHttpSoap11Endpoint/ HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.4952)
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:getCustomersWhere"
Authorization: Basic lkuhsdfofihliuhgsaduf=
Host: xxxxxxx:8880
Content-Length: 347
Expect: 100-continue
To this the ERP WS replies with the 505 HTTP Version not supported and closes the connection:
HTTP/1.1 505 HTTP Version Not Supported
Server: Apache-Coyote/1.1
Date: Thu, 07 Apr 2011 05:50:10 GMT
Connection: close
So, how do I get the authentication information to the original HTTP header, or is the problem somewhere else?