Could not access envelope: Unable to create envelope from given source - web-services

My application produces a SOAP web service. When consumer consumes the web service sometimes user gets "Could not access envelope: Unable to create envelope from given source" error. If the same request is sent again, it processes sucessfully.
From many of the references, I found problem can be resolved by upgrading Xerces and Xalan version. I have updated both these jars still the problem persists.
Also one strange behaviour, there is no error when web service consumed with local host and port while problem comes when request is sent to https domain.
Any extra configuation to be made for handling reverse proxy or https protocol?

Related

SOAP 1.1 "Client Fault" Error

I get the following error when I run a web service client that contacts a remote web service server:
SOAP 1.1 fault: SOAP-ENV:Client[no subcode]
"Client fault"
Detail: [no detail]
I have looked at the client and the server and I can find no faults. Other web server clients can contact web services on the server no problem. The code to the web service client is here, but more than that, I'm actually just wondering how to go about debugging a problem like this one. The web service client and server were constructed using the gSOAP toolkit.
Also, could it have something to do with web service name spaces? I use the ns namespace for all of my webservice applications. See this.
It is likely that there was an EOF or interruption before the response message was fully delivered to the client. Without further details there is no way of knowing for sure.
I suggest to compile the client with -DDEBUG (macro DEBUG set) to generate log files. The log files will be helpful to determine the cause of the problem.
Use the latest version of gSOAP if possible.

Duplicate Soap Requests

We are upgrading from 10.0 to 10.3.6. Our web app is running in a DMZ and uses .jar files created with clientgen to invoke JAX-RPC web service operations deployed on our internal network by going through an XML firewall. My problem is that the XML firewall is behaving as though the HTTP request to invoke the web service operation was sent twice, when as near as I can tell it was only sent once. I set the following properties to view the soap traffic:
-Dweblogic.wsee.verbose=*
-Dweblogic.log.RedirectStdoutToServerLogEnabled=true
Unfortunately I don't have access to the XML firewall but I have been able to get the log entires for my service endpoints. I can see that it reports receiving duplicate requests but for the life of me I don't know how this can be happening. This does not happen when the web service clients are running on version 10.0.
I've tried everything I can think of to troubleshoot this problem. I'm hoping somebody here can offer up some suggestions or perhaps tell me if this is a known issue.
You could use TCP Monitor to intercept the SOAP traffic between your server and the firewall.
This way you can tell if the requests are being sent twice or if there is some internal issue with the firewall.
Also, after you intercept the requests, you can use again TCP Monitor or SOAP UI to re-send the request to emulate the webserver and debug the firewall.

Coldfusion REST API returning 'connection failure. status code unavailable.' when called remotely

Now I want to prefix this with I am unsure whether this should be here or on server fault so I'll post it here to begin with.
We are developing a REST API in Coldfusion 9 which is being hosted on IIS 7 for a client which on certain calls must call another internal webservice. When making these calls from the server that the API is hosted on there are no errors, however when we make the call from a remote machine the following message is returned:
'connection failure. status code unavailable.'
I have googled the issue where the following was suggested as a fix http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729 but it does not work for me. The following are the notes from my own testing:
The calls which are causing the issue are a mix of get, put, post and delete.
The only common part of each call is the talking to the same webservice.
I am able to call the webservice directly from the places where I make the remote calls to the API from.
While all the calls make a call to the same webservice they do not all make the same call to the webservice.
Ideas:
Call the web service remotely using a URL that resolves to the internal ColdFusion server (e.g. http://[servername]:8300). You will probably have to some configuration to get this working. Reason for doing so is to identify if IIS or ColdFusion is the root cause. If you can hit the internal server remotely then IIS is probably the issue.
Is the web service call over SSL? If so, is remote caller also ColdFusion? If you've answered both yes, check to see if the SSL certificate is trusted by the remote caller's JVM. If not, you need to register it as part of the JVM's keystore.
Can you ping the host server from the caller? If not, does the caller need a "hosts" entry?
If enabled on your host, review the .NET filter and how it interacts with HTTP calls. I've experienced a situation where I was unable to access a folder called "/bin" because the .NET filter intercepted the requests.
The issue turned out to be that each of the calls required basic authentication which the calls themselves were handling, however basic authentication had been turned on in IIS which was causing IIS to intercept any requests with an Authorization header.
This causes an issue as IIS assumes that if authentication is passed up then it is for a user on that machine/domain and would reject any other credentials (which were valid for the system). It was working when we were logged into the machine because it was coming locally it did not need to authenticate the user.

How can I see incoming Requests in IIS7?

I have a created web service that takes 2 complex types as parameters. I can use the auto-generated WSDL to create a new application that calls my web service and it works perfectly.
However, a 3rd party consumer is having trouble calling my web service. I see their incoming request in the IIS7 log file and a 500 error is being returned to them.
I suspect that their request is malformed. I would like to be able to see the entire <soap:envelope> that IIS7 is receiving so that I can troubleshoot the issue. I am using Windows Server 2008 and IIS7.
How can I do this?
I would open up a copy of WireShark while they are putting their request through. You can then see each packet which comes to your server. Wireshark is cool because it can put all of the packets back together so you can see the full HTTP request they're sending.

Unable to open coldfusion Administrator

when i try opening http://127.0.0.1:8500/test.com
I get
500 There is no web application configured to service your request There is no web application configured to service your request
when i try opening http://127.0.0.1:8500/CFIDE/
I GET THE same error
Kindly guide me to solution.
It means the server did not fully start. The JRun container started and was able to accept an HTTP Request via its internal webserver port, but then the ColdFusion Server inside JRun was not fully deployed or not deployed at all.
The startup events in /path/to/coldfusion8/runtime/logs/coldfusion-event.log and /path/to/coldfusion8/logs/server.log will contain details about what failed during ColdFusion startup.
You will probably not make sense of the events as they are usually somewhat cryptic. Please post log contents for further diagnosis.