I encountered a java.lang.NoSuchMethodError when running a program.
This link explained the error very clearly.
I am trying to debug this exception in Eclipse Kepler. The link recommends setting the JVM options -Dibm.cl.verbose=[class name], and -verbose:dynload.
I set these options under Run As -> Run Configurations -> Arguments -> VM arguments.
However, after setting the options the JVM is not outputting any additional debug information.
Exception in thread "main" java.lang.NoSuchMethodError: [package].Argument.getConsole()Lcom/beust/jcommander/internal/Console;
Why is the JVM not outputting the expected debug information?
According to the code on this page : https://github.com/cbeust/jcommander/blob/master/src/main/java/com/beust/jcommander/WrappedParameter.java
Jcommander can throw a NoSuchMethodException itself if you've led it to expect a list (that should have a 'put' method) but give it a type that doesn't have that method.
[SOLVED]
So it was a conflict with some dependency issue. Basically I had Maven version 1.17 and 1.30 somehow. I deleted the older one and the problem was resolved.
Related
Springboot occassionally occur following errors:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.security.jca.ProviderConfig$ProviderLoader
at java.base/sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:244)
at java.base/sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:238)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:238)
at java.base/sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:218)
at java.base/sun.security.jca.ProviderList.getProvider(ProviderList.java:266)
at java.base/sun.security.jca.ProviderList$ServiceList.tryGet(ProviderList.java:511)
at java.base/sun.security.jca.ProviderList$ServiceList$1.hasNext(ProviderList.java:565)
at java.base/javax.crypto.SecretKeyFactory.nextSpi(SecretKeyFactory.java:301)
at java.base/javax.crypto.SecretKeyFactory.<init>(SecretKeyFactory.java:121)
at java.base/javax.crypto.SecretKeyFactory.getInstance(SecretKeyFactory.java:168)
at com.kingbase8.shaded.com.ongres.scram.common.ScramMechanisms.saltedPassword(ScramMechanisms.java:155)
at com.kingbase8.shaded.com.ongres.scram.common.ScramFunctions.saltedPassword(ScramFunctions.java:59)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ClientFinalProcessor.<init>(ScramSession.java:196)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ClientFinalProcessor.<init>(ScramSession.java:163)
at com.kingbase8.shaded.com.ongres.scram.client.ScramSession$ServerFirstProcessor.clientFinalProcessor(ScramSession.java:130)
JDK information as following:
enter image description here
Ah, please try to search the log, it is possible a ExceptionInInitializerError was happened before, so this time the JVM throws NoClassDefFoundError directly because it was failed last time.
Need to get the call stack of the original ExceptionInInitializerError (if it exists) in order to fix this issue.
Related codes and links
https://github.com/openjdk/jdk11u/blob/jdk-11+28/src/java.base/share/classes/sun/security/jca/ProviderConfig.java#L308 - the class ProviderConfig$ProviderLoader was defined inside OpenJDK 11 so it is not likely to a Java classpath issue
https://stackoverflow.com/a/5756989/2412606 - See definition of NoClassDefFoundError here. thanks to #oldpeculier and #jared
For this problem not very clear why occur. in order to fix the problem. we can manual use Security.addSecurity method to load jca or analogous component again. like BouncyCastle. now it work fine for me.
I was using Java 11 and the project was build using Java 1.8. Once I switched to Java 1.8 it worked fine
I am doing some maintenance to a JAVA backend written using bundles. When running the code after doing some software upgrade, I get that error at first:
! java.lang.NoSuchMethodError: org.osgi.framework.BundleContext.registerService (Ljava/lang/Class;Lorg/osgi/framework/ServiceFactory;Ljava/util/Dictionary;) Lorg/osgi/framework/ServiceRegistration;
When running it a second time, it gives me the following error:
! java.lang.NoClassDefFoundError: Could not initialize class com.sap.hilo.orchestration.workspace.HiloWorkspaceFactory
Then, it keeps showing the second error for any extra code runs. Any clues how resolve this issue?
Regarding:
java.lang.NoSuchMethodError: org.osgi.framework.BundleContext.registerService
I found an answer to a similar question here: OSGi: servicereference.getBundle().getVersion() - No such method error
In the Import-Package section of the pom.xml file you'll need to change the org.osgi.framework version to at least 1.6 or give it a range [1.6,2.0)
I'm trying to build a custom field type for JIRA, but whenever I add my field to an issue, JIRA says the following:
The field was added successfully, but you do not have edit permissions.
However, in the stdout of atlas-run, I get the following line:
[INFO] [talledLocalContainer] 2017-04-24 09:31:20,813 http-nio-2990-exec-11 WARN adam 571x584x2 fgpziy 0:0:0:0:0:0:0:1 /secure/AjaxIssueEditAction!default.jspa [c.atlassian.ozymandias.SafePluginPointAccess] Unable to run plugin code because of 'java.lang.NullPointerException - null'.
In target/jira/home/log/atlassian-jira.log I can see exactly the same thing; both have that one-line error message and nothing else.
Is there anywhere I can go to find a stacktrace for the NullPointerException that's being reported here, so I can tell which bit of my code it's coming from?
I've tried running atlas-run --jvmargs -XX:-OmitStackTraceInFastThrow, but I still get the same output.
If you're on a JIRA version before 7.2, it could be related to this issue which is a bug in JIRA itself.
To answer your question, you can use the atlas-debug command, which lets you attach a Java remote debugging tool to JIRA.
We have coded and run a dynamic web application using MAPSERVER(Version 6.0.1) on windows platform using Java Technology. Now, there is need of deploying it on Ubuntu 11.10. We have installed Apache Tomcat 6.0, Mapserver 6.0.1, Apache 2.0, and FWTools-2.0.1(As this package contain all required tools for mapserver if I am not wrong, so I didn't feel any other tools to be installed). We have deployed the war file(and put application without) in Apache Tomcat 's Webapps folder. I even got the index page which dont have code related with mapscript api. But while fetching the other servlet with mapscript we are getting following error...
java.lang.UnsatisfiedLinkError: no mapscript in java.library.path
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
java.lang.Runtime.loadLibrary0(Runtime.java:840)
java.lang.System.loadLibrary(System.java:1047)
edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)
Again while refreshing the browser page where the above error was displayed, I got a change,
java.lang.NoClassDefFoundError: Could not initialize class
edu.umn.gis.mapscript.mapscriptJNI
edu.umn.gis.mapscript.mapObj.<init>(mapObj.java:283)
I searched on net about the above problem. But finally blank. Please, provide idea about the above problem.
I'm not going to explain why you're getting the UnsatisfiedLinkError, but instead I'll explain why you are getting the NoClassDefFoundError when you reload the page.
A NoClassDefFoundError with a message Could not initialize class ... is thrown by the JVM when it attempts to initialize a class that it has already tried and failed to initialize.
The first of your two stacktraces contains the line
edu.umn.gis.mapscript.mapscriptJNI.<clinit>(mapscriptJNI.java:23)
The method name <clinit> denotes the static initializer, of the class mapscriptJNI. So, at the point that the UnsatisfiedLinkError was thrown, the JVM was trying to initialize this class. Looking at the error message, it seems that this static initializer tried to load the native code library mapscript but failed.
This UnsatisfiedLinkError causes the mapscriptJNI class to fail to initialize successfully. The JVM keeps a record of all classes that fail to initialize, and if you attempt to initialize one of those classes again, you'll get a NoClassDefFoundError with a message saying that it could not initialize that class.
When you refresh the page, you end up causing the JVM to attempt to initialize the class mapscriptJNI a second time. Of course, this class failed to initialize the previous time. Your second stacktrace contains exactly the error I've described.
In short, the UnsatisfiedLinkError is the real error here. Fix that and the other one will go away.
I would check the following 2 items:
Is the mapscript.jar file on Tomcat or at least your webapp's classpath? (NoClassDefFoundError is your big clue here)
Is the libmapscript.so on either your LD_LIBRARY_PATH or -Djava.library.path? (UnsatisfiedLinkError since the shared object cannot be found)
Try having a look at this post, near the Running Java Mapscript (on Linux) section.
Hope that helps!
I am working on a grails app and need to remove Tomcat plugin in order to be able to host on Google App Engine (Also to use Jetty for another project)
As instructed on Grails app engine documentation, I need to remove Tomcat as GAE apps only runs on their server.
However, I keep on getting this error (The error message is much longer, only post the first few lines):
: Unable to delete file C:\Users\Rama\.grails\1.3.7\projects\ccubemanager\plugins\tomcat-1.3.7\lib\catalina-ant.jar
at org.apache.tools.ant.taskdefs.Delete.handle(Delete.java:624)
at org.apache.tools.ant.taskdefs.Delete.removeDir(Delete.java:683)
at org.apache.tools.ant.taskdefs.Delete.removeDir(Delete.java:679)
at org.apache.tools.ant.taskdefs.Delete.execute(Delete.java:543)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
I am wondering if deleting the catalina-ant.jar manually would be a wise choice.
I tried to manually delete the whole /plugin directory anyway following this and it caused more mess that I cannot run any command on the app:
groovy.lang.MissingMethodException: No signature of method: java.math.BigInteger.call() is applicable for argument types: (java.lang.String) values: [target/classes]
Possible solutions: wait(), abs(), abs(), any(), wait(long), add(java.math.BigInteger)
at BuildConfig.run(BuildConfig.groovy:1)
at grails.util.BuildSettings.loadConfig(BuildSettings.groovy:653)
at grails.util.BuildSettings$loadConfig.callCurrent(Unknown Source)
at grails.util.BuildSettings.loadConfig(BuildSettings.groovy:630)
WARNING: There was an error loading the BuildConfig: No signature of method: java.math.BigInteger.call() is applicable for argument types: (java.lang.String) values: [target/classes]
Possible solutions: wait(), abs(), abs(), any(), wait(long), add(java.math.BigInteger)
I also try to start an entirely new project and uninstall tomcat, surprisingly it does not work either?
I am using Grails 1.3.7; STS 2.6.0; Windows 7
Could anyone please help, thanks alot!!
You should be able to uninstall tomcat by running the following command from the root of the project grails uninstall-plugin tomcat.
This will fail if another process has locked any of the files that the command needs to delete - this could be what is preventing catalina-ant.jar from being deleted. There are various tools available for windows that will tell you which process has a lock on a file. I've used unlocker in the past.