One of the nice features of Oracle Service Bus (OSB) is the ability to test your deployed services through the Test Console in the OSB web console. This is a convenient way of verifying that your basic configuration is correct.
When trying out the latest version of OSB 11gR1, I was both surprised and dismayed when clicking on the Test Console icon I was greeted with the following error message:
Searching the net I found that I was not the only one experiencing this problem. There were several posts on the Oracle discussion forum and the accepted solution seemed to be in this thread.
To make it short the solution given is to start another managed OSB server instance in combination with the Admin server that is already running.
To quote the thread:
Yes, in 11g as well you may access the admin and OSB console by just starting the admin server but in 11g OSB configuration gets deployed on OSB server (managed server) and test service also runs over this server.
Now this solution did not make any kind of sense to me. Was it really necessary to start separate server instances just to use the Test Console in 11gR1? Had the engineers at Oracle gone out of their way to make the product as unfriendly to developers as possible?
Fortunately, there was a simpler solution. OSB is built on top of Weblogic and I remembered having a similar issue with the Weblogic Web Service Test Console once.
The clue to the problem is the following warning that Weblogic prints during the startup sequence:
<Aug 28, 2010 12:51:05 PM CEST><Warning> <Server> <BEA-002611> <Hostname "localhost", maps to multiple IP addresses: 127.0.0.1, 0:0:0:0:0:0:0:1>
Now, I am not sure exactly what is happening but it seems that the fact that the hostname maps to multiple addresses is what causes the confusion. The way to solve it is to explicitly bind the server to one address. This is done in the Weblogic Administration Console:
Home >Summary of Servers >[Your Server]->General->Listen Address
Setting the “Listen Address” explicitly to 127.0.0.1 worked for me but if you have a real hostname or ip that should do as well. After this change, the Weblogic server needed a restart.
And finally, the test console was back:
So now I am happy with OSB again. Obviously this solution was what worked in my case, your mileage may vary.