Re: System scope dependency can't find class in rt.jar?
Well, this is a common bad practice to import packages like sun.* or com.sun.*. PMD has even a standard rule to check this pattern. This can particularly be a problem when deploying on other JVM than sun's. But if you really really must have a dependency against this jar, then I would proceed with standard dependency management : * deploy the right rt.jar in your repository manager * add the dependency against it The thing is I'm unsure it will work fine since I seem to remember that some classes are handled specifically by the classloading system. This one could be one of those. HTH Cheers. 2009/5/6, Charles McCallum m...@pobox.upenn.edu: I need to reference WSBindingProvider, a class in the standard rt.jar: package edu.upenn.library.itadd.dla.fedora; ... import com.sun.xml.internal.ws.developer.WSBindingProvider; ... WSBindingProvider bp = (WSBindingProvider)port; ... This builds fine in Eclipse (without maven), but when I try to build from the commandline I get this: ... [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] Compilation failure /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[16,40] package com.sun.xml.internal.ws.developer does not exist /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[101,5] cannot find symbol symbol : class WSBindingProvider location: class edu.upenn.library.itadd.dla.fedora.Post ... I've tried several different things in the POM, but they make no difference. Here's one permutation: dependency groupIddummy/groupId artifactIddummy/artifactId version1/version scopesystem/scope systemPath/usr/lib/jvm/newest/jdk/jre/lib/rt.jar/systemPath /dependency -- As I understand it, this is an appropriate use of system scope: This class should just be available through the JDK on any installation. -- If I could get it to work, I'd certainly use a property reference in the systemPath, but here I'm specifying the path explicitly so there's one less variable. -- For system scope, my understanding is that the groupId, artifactId, and version can be arbitrary. For example, http://mail-archives.apache.org/mod_mbox/maven-users/200710.mbox/%3c4725b62a.3080...@udo.edu%3e I have a work-around: that is to strip the rt.jar down to just the subpackage we need, and put it in our local repository, but that really doesn't seem like the right thing to do. Any suggestions? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org -- Baptiste Batmat MATHUS - http://batmat.net Sauvez un arbre, Mangez un castor !
System scope dependency can't find class in rt.jar?
I need to reference WSBindingProvider, a class in the standard rt.jar: package edu.upenn.library.itadd.dla.fedora; ... import com.sun.xml.internal.ws.developer.WSBindingProvider; ... WSBindingProvider bp = (WSBindingProvider)port; ... This builds fine in Eclipse (without maven), but when I try to build from the commandline I get this: ... [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] Compilation failure /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[16,40] package com.sun.xml.internal.ws.developer does not exist /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[101,5] cannot find symbol symbol : class WSBindingProvider location: class edu.upenn.library.itadd.dla.fedora.Post ... I've tried several different things in the POM, but they make no difference. Here's one permutation: dependency groupIddummy/groupId artifactIddummy/artifactId version1/version scopesystem/scope systemPath/usr/lib/jvm/newest/jdk/jre/lib/rt.jar/systemPath /dependency -- As I understand it, this is an appropriate use of system scope: This class should just be available through the JDK on any installation. -- If I could get it to work, I'd certainly use a property reference in the systemPath, but here I'm specifying the path explicitly so there's one less variable. -- For system scope, my understanding is that the groupId, artifactId, and version can be arbitrary. For example, http://mail-archives.apache.org/mod_mbox/maven-users/200710.mbox/%3c4725b62a.3080...@udo.edu%3e I have a work-around: that is to strip the rt.jar down to just the subpackage we need, and put it in our local repository, but that really doesn't seem like the right thing to do. Any suggestions? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: System scope dependency can't find class in rt.jar?
Long shot - I know that newest in /usr/lib/jvm/newest/jdk/jre/lib/rt.jar suggests it is a JDK6 JDK, but might be worth double-checking on the build machine, in case a JDK5 slipped in unnoticed (which won't have this class). I see you've extracted the classes from the JAR, but maybe you did this from a different copy. Brett On Thu, May 7, 2009 at 1:57 AM, Charles McCallum m...@pobox.upenn.eduwrote: I need to reference WSBindingProvider, a class in the standard rt.jar: package edu.upenn.library.itadd.dla.fedora; ... import com.sun.xml.internal.ws.developer.WSBindingProvider; ... WSBindingProvider bp = (WSBindingProvider)port; ... This builds fine in Eclipse (without maven), but when I try to build from the commandline I get this: ... [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] Compilation failure /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[16,40] package com.sun.xml.internal.ws.developer does not exist /usr/local/dla-input/lib/java/FedoraPost/src/main/java/edu/upenn/library/itadd/dla/fedora/Post.java:[101,5] cannot find symbol symbol : class WSBindingProvider location: class edu.upenn.library.itadd.dla.fedora.Post ... I've tried several different things in the POM, but they make no difference. Here's one permutation: dependency groupIddummy/groupId artifactIddummy/artifactId version1/version scopesystem/scope systemPath/usr/lib/jvm/newest/jdk/jre/lib/rt.jar/systemPath /dependency -- As I understand it, this is an appropriate use of system scope: This class should just be available through the JDK on any installation. -- If I could get it to work, I'd certainly use a property reference in the systemPath, but here I'm specifying the path explicitly so there's one less variable. -- For system scope, my understanding is that the groupId, artifactId, and version can be arbitrary. For example, http://mail-archives.apache.org/mod_mbox/maven-users/200710.mbox/%3c4725b62a.3080...@udo.edu%3e I have a work-around: that is to strip the rt.jar down to just the subpackage we need, and put it in our local repository, but that really doesn't seem like the right thing to do. Any suggestions? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org