Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory

Dave,

My goal was trying to get it to work on Java 11/12. I thought it might be broken on Java 8. I’m going to try to use a fragment to handle Java 11 so Java 8 should not be affected. I’ll let you know when it’s ready to test.

Regarding the version of Java used to build PTP. I believe it shouldn’t matter as each plugin includes a Bundle-RequiredExecutionEnvironment that specifies the minimum Java version required to execute the plugin. The build process is supposed to adhere to this requirement so that API changes do not cause problems. In any case, it will be built with Java 8 by the Eclipse CI server.

Regards,
Greg 

On Jun 5, 2019, at 10:59 AM, David Wootton <dwootton@xxxxxxxxxx> wrote:

I'm not sure that the Java version was used to build PTP matters. 

I did not rebuild PTP when switching between Java 8 and Java 12. I just switch Java JRE and run environment in the run configuration dialog that starts the PTP runtime instance.

Anyway, as far as I know I am building PTP only with Java 8 since that is the only Java in my Windows PATH. I downloaded the Java 12 code as a zip file and manually unpacked it to keep anything in the Java install process from changing my environment. So I think the only thing my Eclipse IDE knows about my Java 12 installation is that it is an additional JRE (set as the default in the Installed JRE in the IDE preferences)
Dave

<graycol.gif>"Serban Maerean" ---06/05/2019 09:54:09 AM---If PTP was built for Java 11/12, I doubt it will run smoothly on Java8, as interfaces may have chan

From:  "Serban Maerean" <serban@xxxxxxxxxx>
To:  Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date:  06/05/2019 09:54 AM
Subject:  [EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by:  ptp-dev-bounces@xxxxxxxxxxx





If PTP was built for Java 11/12, I doubt it will run smoothly on Java8, as interfaces may have changed. We know the other way around is not true, although that shouldn't be the case.

Also, is it possible to check the Java RTE version at runtime and do things differently for each version?

Or maybe we can do that with some magic and use different PTP plugin versions in hpctView, depending on the Java RTE version?!?


One thing is for sure, PTP needs to support Java >=11. What do other plugins that use JAXB do?



Serban Maerean
HPC Tools
T/L: 293-9770, Tel.: 845-433-9770
E-mail: serban@xxxxxxxxxx 




From:  
"David Wootton" <dwootton@xxxxxxxxxx>
To:  
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date:  
06/05/2019 08:37 AM
Subject:  
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by:  
ptp-dev-bounces@xxxxxxxxxxx




Greg
The original problem with a missing ContextFactory class when running with a Java 12 JRE seems to be fixed. I can open a run configuration dialog, select a target system configuration and a remote connection and have the resources tab fill in proiperly.
I noticed this warning when I created a synchronized project. I'm not sure if it means anything or not, and don't know if this is due to something in PTP code. I created a second synchronized project using a Java 8 runtime and did not see this. When I created a third synchronized project while running as a Java 12 JRE I did not see this warning.

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.bouncycastle.jcajce.provider.drbg.DRBG (file:/C:/Eclipse_Workspaces/Eclipse-PTP-Java12/.metadata/.plugins/org.eclipse.pde.core/.bundle_pool/plugins/org.bouncycastle.bcprov_1.60.0.v20181210-2057.jar) to constructor sun.security.provider.Sun()
WARNING: Please consider reporting this to the maintainers of org.bouncycastle.jcajce.provider.drbg.DRBG
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

I tried running with a Java 8 JRE and and ran into problems when trying to open the run configuration dialog.

First, I get this popup when I start the runtime instance

<17599189.gif>

When I opened the profile configuration dialog, I got this popup, but then the dialog opens

<17183327.gif>
If I try to select a connection I get the same popup and can't select a connection.

Dave

<graycol.gif>Greg Watson ---06/04/2019 07:17:20 PM---Dave, I submitted a change to master that fixes the problem for me. Can you see if it fixes it for y

From: 
Greg Watson <g.watson@xxxxxxxxxxxx>
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
06/04/2019 07:17 PM
Subject: 
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




Dave,

I submitted a change to master that fixes the problem for me. Can you see if it fixes it for you also?

Thanks,
Greg
On Jun 4, 2019, at 1:45 PM, David Wootton <dwootton@xxxxxxxxxx> wrote:
Greg
If I don't change anything, I get this popup when starting the PTP runtime instance with a Java 8 runtime


<19143201.gif>
and I get this exception logged, 

org.osgi.framework.BundleException
: Could not resolve module: com.sun.xml.bind.jaxb-osgi [9]
Unresolved requirement: Import-Package: javax.xml.bind.annotation; version="2.3.0"
-> Export-Package: javax.xml.bind.annotation; bundle-symbolic-name="jaxb-api"; bundle-version="2.4.0.b1808300359"; version="2.3.0"; uses:="javax.xml.bind,javax.xml.parsers,javax.xml.transform,javax.xml.transform.dom,org.w3c.dom"
jaxb-api [20]
Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=9.0))"
Unresolved requirement: Import-Package: javax.xml.bind; version="2.3.0"
-> Export-Package: javax.xml.bind; bundle-symbolic-name="jaxb-api"; bundle-version="2.4.0.b1808300359"; version="2.3.0"; uses:="javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.namespace,javax.xml.stream,javax.xml.transform,javax.xml.validation,org.w3c.dom,org.xml.sax"

The runtime instance starts and the run configuration dialog resources tab fills in properly when I select a connection name. I don't have either OpenMPI or MPICH on my test system so I specified the application as /bin/ls and clicked run. That generated output to the console and I didn't see any further errors logged.

If I change the MANIFEST.MF file in org.eclipse.ptp.rm.jaxb.core and use the Java 8 runtime I get the same behavior including the popup and exception.

Dave



<graycol.gif>Greg Watson ---06/04/2019 11:50:32 AM---Unfortunately this is the problem. Projects hosted on Eclipse can’t be built using arbitrary compone

From: 
Greg Watson <g.watson@xxxxxxxxxxxx>
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
06/04/2019 11:50 AM
Subject: 
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




Unfortunately this is the problem. Projects hosted on Eclipse can’t be built using arbitrary components from a maven repository. Everything has to be obtained from Eclipse repositories, and from what I’ve been able to determine, the latest jaxb version is 2.2.0 which doesn’t seem to work. I’ve been looking at using Eclipselink but haven’t been able to get that to work either.

Also, it would be worth checking that Dave’s solution works for Java 8 as well as Java 11/12. Whatever the solution is, it also needs to work with both versions.

Regards,
Greg 
On Jun 4, 2019, at 11:34 AM, Serban Maerean <serban@xxxxxxxxxx> wrote:

Dave, is it possible that Greg didn't copy the three plugins to a local directory and instead tried to reference them directly from the server?

Greg, with Dave's approach, will you need to package those plugins with PTP?


Serban Maerean
HPC Tools
T/L: 293-9770, Tel.: 845-433-9770
E-mail: 
serban@xxxxxxxxxx



From: 
"David Wootton" <dwootton@xxxxxxxxxx>
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
06/04/2019 11:22 AM
Subject: 
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




Greg
I'm not sure what's different. I have a Java 12 runtime. I downloaded the java-activation-1.2.0,jar, jaxb-api-2.4.0-b-180830.0359.jar and jaxb-osgi-180830.0438.jar from the maven repository files into a local directory, added that directory as a local repoistory in the photon.target file, and changed the import for com.sun.xml.bin in the org.eclipse.ptp.rm.jaxb.core MANIFEST.MF file to com.sun.xml.bind.v2. Then I reloaded the target definition file and started a PTP runtime instance. 
I was able to open the run configuration dialog, pick any target system configuration and pick a remote connection name. Then the resources page would fill in properly.

If I backed out those changes and ran again using the Java 12 runtime, I got the error for the missing class.
Dave

<Mail Attachment.gif>Greg Watson ---06/04/2019 09:20:45 AM---Hi Dave, Yes, I’ve spent the better part of a week on it and I’m still no closer… I’ve tried everyt

From: 
Greg Watson <g.watson@xxxxxxxxxxxx>
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
06/04/2019 09:20 AM
Subject: 
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




Hi Dave,

Yes, I’ve spent the better part of a week on it and I’m still no closer… I’ve tried everything, including creating a fragment with the dependencies but I’m still getting the error.

Greg
On Jun 4, 2019, at 9:03 AM, David Wootton <dwootton@xxxxxxxxxx> wrote:
Greg
Have you had a chance to look at this?
Dave


<graycol.gif>Greg Watson ---05/21/2019 10:02:02 AM---Hi Dave, Thanks for looking into this. I'll try to take a look later this week.

From: 
Greg Watson <g.watson@xxxxxxxxxxxx>
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
05/21/2019 10:02 AM
Subject: 
[EXTERNAL] Re: [ptp-dev] Fw: PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




Hi Dave,

Thanks for looking into this. I'll try to take a look later this week.

Greg 
On May 21, 2019, at 7:41 AM, David Wootton <dwootton@xxxxxxxxxx> wrote: 
I realized I left out the link to the page that suggested using com.sun.xml.bind:jaxb-osgi (
http://www.descher.at/descher-vu/2019/01/java-11-jaxb-and-osgi/)to get the missing JAXB code.
Dave

----- Forwarded by David Wootton/Poughkeepsie/Contr/IBM on 05/21/2019 07:38 AM -----


From: 
David Wootton/Poughkeepsie/Contr/IBM
To: 
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
Date: 
05/16/2019 05:07 PM
Subject: 
Re: [EXTERNAL] [ptp-dev] PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory




Looking at this further, it seems that CDT has solved this or a similar problem

https://www.eclipse.org/lists/cdt-dev/msg33366.html
https://bugs.eclipse.org/bugs/show_bug.cgi?id=542644

I also found this, which suggests using com.sun.xml.bind:jaxb-osgi to get the missing JAXB code, where I found 
https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-osgithat seems to point to the location to get it from.
I don't know if this helps or is even possible to use in an 
eclipse.org-hosted project
Dave


<graycol.gif>"David Wootton" ---05/15/2019 05:53:23 PM---I'm looking at this problem since it affects my plugin once Java 8 is no longer supported. I'm not s

From: 
"David Wootton" <dwootton@xxxxxxxxxx>
To: 
"Parallel Tools Platform general developers" <ptp-dev@xxxxxxxxxxx>
Date: 
05/15/2019 05:53 PM
Subject: 
[EXTERNAL] [ptp-dev] PTP java.lang.ClassNotFoundException: for com.sun.xml.internal.bind.v2.ContextFactory
Sent by: 
ptp-dev-bounces@xxxxxxxxxxx




I'm looking at this problem since it affects my plugin once Java 8 is no longer supported. I'm not sure I'm anywhere near on the right track to figure this out. I found quite a few references to this problem within the past year by Google search using the words ContextFactory and Eclipse, a number of which refer to PTP bug 541264

My understanding of the solutions suggested are to use versions 2.2.0 of the com.sun.xml.bind and javax.xml.bind, which I think means I need to find repositories that have these versions of the packages.

I tried updating the photon.target target definition file to use a later Orbit repository, I20190320195810 which seems to have these, but that did not help. I also found 
https://www.jesperdj.com/2018/09/30/jaxb-on-java-9-10-11-and-beyond/which explains how to specify a dependency for a maven build, but I'm not sure where this gets specified.

Am I anywhere near the right track to figure this out?
Dave
_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev



_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ptp-dev
_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ptp-dev
_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev
_______________________________________________
ptp-dev mailing list

ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ptp-dev
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

https://www.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/ptp-dev


Back to the top