I may've stumbled into the reason for the problem... org.apache.axis.transport.http.HTTPSender.invoke method seems to have a variable "useFullURL" that's hard-coded to "false". Then when writeToSocket is called from there it honors it...
Can anyone explain this behavior? ----- Forwarded by Ricky Frost/PeopleSoft on 02/11/2005 12:19 PM ----- The access.log from the proxy server clearly shows that the axis message received from wsrp4j/axis doesn't have the "authority" portion of the URL (only the file portion)... I have verified that the "cachedEndpoint" has the correct (complete) URL at the time the call is invoked in the soapStub. I've tried to debug into a few methods in org.apache.axis.client.Call (like setTargetEndpointAddress) but I couldn't get matching axis source for the jar version included in WSRP4J... Here is the proxy access.log showing first, another program sending a post through the proxy, then the wsrp4j request 192.168.31.59 - - [10/Feb/2005:16:35:59 -0800] "POST http://shttp.msg.yahoo.com/notify/ HTTP/1.0" 200 4 200 4 75 75 438 338 513 312 0 216.131.225.152 - - [10/Feb/2005:16:36:00 -0800] "POST /WSRPTestService/WSRPTestService.asmx HTTP/1.0" 500 - - - - - 359 - - - 0 I would really appreciate any help or suggestions on this... Thanks ----- Forwarded by Ricky Frost/PeopleSoft on 02/11/2005 11:05 AM ----- I'm testing the wsrp4j consumer (ProxyPortlet) in an environment that requires going through a NetCache proxy server to get to the internet. Whenever I request a producer on the internet I get an HTTP 500 on the WSRP getServiceDescription. It turns out that the proxy returns the error because it claims it received a bad URL. Upon looking closer at the logs in the proxy it appears that axis isn't sending complete URL's in the requests. The scheme, host and port and missing. Only the "file" part of the URL is in the POST line (but the request does have the correct "Host:" header). My question: What's the right thing to do here? 1. Is axis correct in sending the first HTTP line without the scheme://host:port? 2. Is the proxy correct in rejecting the request without them? 3. Is there some inappropriate coding in axis or wsrp4j that causes this? 4. Something else? Thanks for your time. p.s. Here's a sample of what I mean: POST /WSRPTestService/WSRPTestService.asmx HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.2beta Host: wsrp.netunitysoftware.com:80 Cache-Control: no-cache Pragma: no-cache SOAPAction: "urn:oasis:names:tc:wsrp:v1:getServiceDescription" Content-Length: 597 <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <getServiceDescription xmlns="urn:oasis:names:tc:wsrp:v1:types"> <registrationContext> <registrationHandle>0b7c607a-5604-42d0-992a-9ca0c84c6628</registrationHandle> <registrationState/> </registrationContext> <desiredLocales>en</desiredLocales> <desiredLocales>nl</desiredLocales> </getServiceDescription> </soapenv:Body> </soapenv:Envelope>
