Monday, April 29, 2013

oracle.jrf.UnknownPlatformException: JRF is unable to determine the current application server platform.

Problem:

When deploying a composite in Oracle SOA Suite 11g, this is one of the more annoying errors you can receive in the /tmp/out.err file:

Here is the output and the error received:
Apr 29, 2013 2:45:51 PM oracle.adf.share.ADFContext getCurrent
WARNING: Automatically initializing a DefaultContext for getCurrent.
Caller should ensure that a DefaultContext is proper for this use.
Memory leaks and/or unexpected behaviour may occur if the automatic initialization is performed improperly.
This message may be avoided by performing initADFContext before using getCurrent().
To see the stack trace for thread that is initializing this, set the logging level of oracle.adf.share.ADFContext to FINEST
Apr 29, 2013 2:46:01 PM com.collaxa.cube.CubeLogger info
INFO: validating "HelloWorld.bpel" ...
oracle.jrf.UnknownPlatformException: JRF is unable to determine the current application server platform.
        at oracle.jrf.ServerPlatformSupportFactory.getInstance(ServerPlatformSupportFactory.java:79)
        at oracle.integration.platform.blocks.WLSPlatformConfigurationProvider.<clinit>(WLSPlatformConfigurationProvider.java:44)
        at oracle.integration.platform.blocks.FabricConfigManager.<clinit>(FabricConfigManager.java:154)
        at oracle.integration.platform.blocks.xpath.FabricXPathFunctionResolver.loadXpathFunctions(FabricXPathFunctionResolver.java:282)
        at oracle.integration.platform.blocks.xpath.FabricXPathFunctionResolver.loadXPathConfigFile(FabricXPathFunctionResolver.java:156)

.
.

Analysis:

In this particular case, we can see that during compilation, we received the following error. If you notice, the actual error was an "Invalid UTF8 encoding."
[deployComposite] setting user/password..., user=weblogic
[deployComposite] Processing sar=/home/oracle/deploy/svn/HelloWorld/deploy/sca_HelloWorld_rev1.0.jar
[deployComposite] Adding sar file - /home/oracle/deploy/svn/HelloWorld/deploy/sca_HelloWorld_rev1.0.jar
[deployComposite] INFO: Creating HTTP connection to host:soatest.ipnweb.com, port:8142
[deployComposite] INFO: Received HTTP response from the server, response code=500
[deployComposite] ---->response code=500, error:There was an error deploying the composite on soa_server1: oracle.mds.transfer.TransferException:
[deployComposite] MDS-00001: exception in Metadata Services layer
[deployComposite] MDS-00522: failure to save document /deployed-composites/default/HelloWorld_rev1.0/xsl/mytransform.xsl to the metadata repository
[deployComposite] Invalid UTF8 encoding.

Solution:

Seems that the developer saved the file in some weird encoding that the MDS was not happy with. Our MDS was using the character set AL32UTF8. The idea was to recreate the file using a valid encoding.

1. In the SOA project, open the offending file "mytransform.xsl".

2. Copy the contents of this file.

3. Delete the file, and create a new one in something like "vi".

4. Paste the contents into this new file, save it, and try again.



Application versions:
  • Oracle SOA Suite 11g (11.1.1.5+)

No comments: