Introducing a small but powerful PeopleSoft bolt-on that makes web services very easy. If you have a SQL statement, you can turn that into a web service in PeopleSoft in a few minutes.Read More & Purchase
Below are a collection of common issues and their solutions.
If you are getting a response that looks like the following:
HTTP/1.1 500 Internal Server Error Connection: close Date: Tue, 01 Oct 2019 00:02:01 GMT Content-Length: 121 Content-Type: text/plain; charset=UTF-8; encoding="UTF-8" 500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request.
The source of the issue is likely your URL is not matching exactly to one of the “URI Indexes” setup on the service operation.
Content-Typeheader in the request like this example for xml
Content-Type: application/xml. You may see an error in the msgLog.html that gives you and indication that you did not include it.
These two requests are different because the “EMPLID” query string parameter has a different case.
I would really like to see some better error handling around this issue from Oracle.
Another common cause is having a forward slash ("/") as the first character in the URI template. I have wasted many hours debugging this one. Do not start the URIs with a forward slash as it is implied.
If your message response looks like the following, you need to look in the application server log files.
<HTML><HEAD><TITLE>RESTListeningConnector</TITLE></HEAD><BODY>OnRequest could not run to completion.</BODY></HTML>
You might see something like this:
(3) The Document Primitive: nameType defined length is smaller than the value: Y (0,0)
RESTListeningConnectorreturns HTTP Status 200 but this is an error.
When your handler code runs and pulls the parameters from the
document template there are times when you may get back additional parameters that you had expected to be parsed as separate parameters. This can be perplexing but also you can use this as a “feature”. I have found this can be useful if you want to parse you own parameters.
If your service operation URI template looks like this where this is just one template consisting of
This will end up “catching” all parameters in that string. If your clients call the web service with different “paths” and query strings then all of that will be stuff into the
PATHANDQUERYSTRING variable that get in the handler. The string will be URL Encoded.
Here is a table to visual what what is invoked and what is parsed.
|Path and Query String||Parsed Value|
If you submit a transaction to the RESTListeningConnector and you don’t get back a response or it times out I have seen issues where the path that your client is submitting does not match a path in the URI Templates In once instances, the client was submitting a trailing “/” but the template did not have that defined as a valid template. In this case, it was actually hanging up the application server entirely. This looks like a tools bug as it should have returned quickly with an invalid routing.