Wednesday, September 7, 2011

JDeveloper 11.1.2/WLS 10.3.5 hot deployment issue [solved]

Status: Solved

Applies to: JDeveloper 11.1.2 / WLS 10.3.5, Windows XP

Problem Description

Having activated the WebLogic Fast Swap Option

0000@2510_2510-412669670fedcbaa

a strange Exception comes up in the Log-Window for the integrated WebLogic Server output.

java.net.URISyntaxException: Illegal character in opaque part at index 16: zip:C:/Dokumente und Einstellungen/ak/Anwendungsdaten/JDeveloper/system11.1.2.0.38.60.17/DefaultDomain/servers/DefaultServer/tmp/_WL_user/adf.oracle.domain.webapp/q433f9/WEB-INF/lib/adf-richclient-impl-11.jar!/oracle/adfinternal/view/faces/renderkit/rich/PageTemplateRenderer.class
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parse(URI.java:3019)
at java.net.URI.<init>(URI.java:578)
at java.net.URL.toURI(URL.Java:918)
at com.bea.wls.redef.io.ClassChangeNotifier.toURI(ClassChangeNotifier.java:251)
at com.bea.wls.redef.io.ClassChangeNotifier.isRelative(ClassChangeNotifier.java:211)
at com.bea.wls.redef.io.ClassChangeNotifier.updateCache(ClassChangeNotifier.java:80)
at com.bea.wls.redef.RedefiningClassLoader.findClass(RedefiningClassLoader.java:115)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)

Issue Analysis

It turns out that the Exception occures because the (by default) created WebLogic domain is located at a directory which contains spaces, e.g. C:/Dokumente und Einstellungen/<user>/Anwendungsdaten/JDeveloper/system11.1.2.0.38.60.17/

Solution

Move your JDev User Dir to a location without space in directory names! This can be done as follows

1. systemwide (for all your JDev installations)

0001@2510_0000@2507_0-412669653f2a1908

2. or finegrained (for specific JDev installation)

$MW_HOME\jdeveloper\jdeveloper.exe -J-Dide.user.dir=c:\ak\JDeveloper

(this will not effect other jdeveloper installations on your machine.)

If you now start Jdeveloper a new jdev user dir will be created.

0002@2510_0001@2507_2507-41266965401845c9

Note: If you want to keep your prefs, etc. copy the system11.1.2.0.38.60.17 from old location to the new one and delete the wls default domain

system11.1.2.0.38.60.17\DefaultDomain directory. (This is needed, because many scripts in DefaultDomain are generated at time of domain creation and so may contain absolute paths! So in order not to get stuck with those issues just delete the DefaultDomain directory. it will be created next time you start wls from jdeveloper)

Conclusion

After moving the jdev user dir you will see in the wls log window

[05:26:06 PM] Updated /C:/ak/JDeveloper/system11.1.2.0.38.60.17/o.j2ee/drs/<app>/<app>WebApp.war/WEB-INF/classes

(after Rebuild of your ViewController project).

Happy fast swapping! It is a real timesaver now!

Further reading

Section 36.4, "Reloading Oracle ADF Metadata in Integrated WebLogic Server." of fusion developmen guide 11.1.2.0.

2 comments: