Eclisep 3.3 runtime options for STP.SC
This wiki is used to document all runtim options for STP service creation.
[Johnson Ma, Apr 16, 2007]
make sure you add this line at the end of the file (note on updating eclipse.ini on MacOS)
Why need to config bootdelegation property
Problem with try to upgrade to Eclipse 3.3
When i was trying to upgrade my dev env to Eclipse 3.3, i always got java.lang.LinkError for javax.xml.namespace.QName during run java2wsdl tool.
After tracking the class loading process, i found that QName was defined in two places: jre/lib/rt.jar and stax-api-1.0.1.jar (comes from Apache CXF plugin) And there are different versions. Both of them have been loaded to jvm during run j2w, which cased the QName link error. But why it loaded twice in Eclipse 3.3?
In the previous Eclipse release (including 3.2), it follow OSGI R3: A bundle classloader must delegate to the system classloader first.. In our stp case, that means, the QName in jre/lib/rt.jar is loaded everytime in Eclipse 3.2
However, Eclipse 3.3 release has changed to follow OSGI R4 spec. That means A bundle classloader must delegate to the system classloader last.. In our stp case, the stp.sc.cxf plugin load QName from stax-api-1.0.1.jar, which caused the java.lang.LinkError on javax.xml.namespace.QName
So we need to override the default boot delegation behavior by setting the property -Dorg.osgi.framework.bootdelegation=*
Fixed by sun
Here is the bug on sun website. It was 'fixed' However, i can't find any stax api jar without QName so far. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6402423
To run the unit tests for STP.SC, please set following two properties:
Points to the Apache CXF runtime installation directory
Points to the Apache Tuscany runtime installation directory