I'm trying to create a spigot/bukkit plugin that monitors information about player connections, I've been trying to add MaxMind's GeoIP2 java api and the last time I asked how to add it's dependencies. I've installed M2e and added the dependency for geoip2 but when I run my bukkit test server I get this error:
[20:35:14] [Server thread/ERROR]: Error occurred while enabling ConnectionInfo v0.0.1.15 (Is it up to date?)
java.lang.NoClassDefFoundError: com/maxmind/geoip2/exception/GeoIp2Exception
at net.comdude2.plugins.connectioninfo.main.ConnectionInfo.onEnable(ConnectionInfo.java:107) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505) [spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_65]
Caused by: java.lang.ClassNotFoundException: com.maxmind.geoip2.exception.GeoIp2Exception
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_65]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot_server.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_65]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_65]
... 12 more
[20:35:14] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
My code and pom.xml can be found here.
I just need to know how to add the dependency if I'm doing it wrong, I'm not new to java but I am new to Maven and Dependencies so please be patient with me, any help is appreciated.
P.S. I'm not trying to locate IP "0.0.0.0", I have pushed it as that to protect my own IP address.
I managed to fix my own problem, It was because I needed to run my project as a Maven build.
If you're having the same problem this question helped me.
I used the package goal as that's what I needed.
I also needed to change my pom to enable it to export dependencies into the built jar.
Related
Currently using IntelliJ for an IDE.
I inherited a project, and when I went through to make an artifact, I think the compiler is including my local JDK in the build, meaning that if my JRE and JDK are not the same, the program fails on a java.long.SecurityException because a quick signature check of the versions is run when my bundled "artifact" (the jar) runs.
Does anyone know how to make an artifact not bind to a specific JDK/JRE at build time? This program needs to be end user agnostic/independent.
Any help appreciated and thanks folks.
Here is the exact exception found when running the jar file:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at java.base/sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at java.base/sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.base/java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.base/java.util.jar.JarVerifier.update(Unknown Source)
at java.base/java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.base/java.util.jar.JarFile.getInputStream(Unknown Source)
at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
at java.base/jdk.internal.loader.Resource.cachedInputStream(Unknown Source)
at java.base/jdk.internal.loader.Resource.getByteBuffer(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at java.base/sun.launcher.LauncherHelper.loadMainClass(Unknown Source)
at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
I am trying to get started with Drools 6x, and in eclipse, I have created a Drools project, which creates the boilerplate code to run a simple drl.
I have the drools runtime installed via Eclipse.
I have drools libraries, drools-core-5.0.1.jar,kie-api-6.0.0.beta4.jar,kie-internal-6.0.0.beta2.jar as External jars in my project.
Yet, when I try to run the following, I get the following error:
java.lang.ExceptionInInitializerError
at com.sample.PetStoreExample.init(PetStoreExample.java:78)
at com.sample.PetStoreExample.main(PetStoreExample.java:67) Caused by: java.lang.RuntimeException: Unable to instance KieServices
at org.kie.api.KieServices$Factory.<clinit>(KieServices.java:137)
... 1 more Caused by: java.lang.ClassNotFoundException:org.drools.compiler.kie.builder.impl.KieServicesImpl at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.kie.api.KieServices$Factory.<clinit>(KieServices.java:165)
... 1 more
If you downloaded the zip of Jars from http://www.drools.org/, you're going to want to include every jar from /binaries in your project. Even the ones that seem like you won't use.
I had this same problem too because I assumed I only needed to use a few Jars, but it turns out they all depend on classes from the other jars in that zip folder.
I had this problem because I had both kie-api and kie-ci as dependencies in my pom file. I removed the kie-ci dependency and I'm not getting this issue any more.
I am new to hibernate and I was trying to build a JSF application with Hibernate in the persistence layer. This is how I am getting the Session Factory.
Configuration config = new Configuration().configure("hibernate.cfg.xml");
StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(config.getProperties());
factory = config.buildSessionFactory(ssrb.build());
But I am getting the following error while running the application.
Error Message:
Caused by: java.lang.NoSuchMethodError: org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(Ljava/util/LinkedHashSet;Lorg/hibernate/boot/registry/classloading/spi/ClassLoaderService;)V
at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247)
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:73)
at com.sherwin.j29.jpa.factory.JPASessionFactory.createSessionFactory(JPASessionFactory.java:19)
at com.sherwin.j29.jpa.factory.JPASessionFactory.getSessionFactory(JPASessionFactory.java:13)
at com.sherwin.j29.dao.WorkItemDAO.<init>(WorkItemDAO.java:24)
at com.sherwin.j29.dao.WorkItemDAO$Proxy$_$$_WeldClientProxy.<init>(WorkItemDAO$Proxy$_$$_WeldClientProxy.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:344)
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:173)
at org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:341)
at org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:237)
at org.jboss.weld.bean.proxy.ClientProxyFactory.create(ClientProxyFactory.java:105)
at org.jboss.weld.bean.proxy.ClientProxyProvider.createClientProxy(ClientProxyProvider.java:87)
at org.jboss.weld.bean.proxy.ClientProxyProvider.access$000(ClientProxyProvider.java:43)
at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:53)
at org.jboss.weld.bean.proxy.ClientProxyProvider$1.load(ClientProxyProvider.java:46)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
I am using hibernate 4.3.6.
Please let me know if I am missing something.
Make sure that you have removed all of the previous version(s) of Hibernate from your classpath.
Looking at it on github, I do not see why that would be caused unless you were having class loader issues caused by version conflicts, as the IntegratorServiceImpl exists in both versions that you are/were using, which suggests a class loader issue to me
Try to clean and build your project if you had any package upgrade recently.
Hi I'm having this problem with Jenkins when trying to use it with a maven build project.
This is the error log.
Any help would be much appreciated.
I looked through older questions and none of them seem to answer my problem. I'm not using a repo, just local.
Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/jobs/Test3/workspace
Parsing POMs
Modules changed, recalculating dependency graph
[SmartAssetScreenShotTool copy] $ /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -cp /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven31-agent-1.5.jar:/Users/Shared/Jenkins/Home/apache-maven-3.2.2/boot/plexus-classworlds-2.5.1.jar:/Users/Shared/Jenkins/Home/apache-maven-3.2.2/conf/logging jenkins.maven3.agent.Maven31Main /Users/Shared/Jenkins/Home/apache-maven-3.2.2 /Users/Shared/Jenkins/Home/war/WEB-INF/lib/remoting-2.43.jar /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven31-interceptor-1.5.jar /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.5.jar 64622
<===[JENKINS REMOTING CAPACITY]===>channel started
channel stopped
ERROR: Failed to parse POMs
java.io.IOException: Remote call on Channel to Maven [/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java, -cp, /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven31-agent-1.5.jar:/Users/Shared/Jenkins/Home/apache-maven-3.2.2/boot/plexus-classworlds-2.5.1.jar:/Users/Shared/Jenkins/Home/apache-maven-3.2.2/conf/logging, jenkins.maven3.agent.Maven31Main, /Users/Shared/Jenkins/Home/apache-maven-3.2.2, /Users/Shared/Jenkins/Home/war/WEB-INF/lib/remoting-2.43.jar, /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven31-interceptor-1.5.jar, /Users/Shared/Jenkins/Home/plugins/maven-plugin/WEB-INF/lib/maven3-interceptor-commons-1.5.jar, 64622] failed
at hudson.remoting.Channel.call(Channel.java:748)
at hudson.maven.ProcessCache$MavenProcess.call(ProcessCache.java:160)
at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:843)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535)
at hudson.model.Run.execute(Run.java:1732)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:529)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:234)
Caused by: java.lang.InternalError: Can't connect to window server - not enough permissions.
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1833)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1730)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1044)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
at java.awt.Color.<clinit>(Color.java:263)
at hudson.util.ColorPalette.<clinit>(ColorPalette.java:39)
at hudson.model.BallColor.<clinit>(BallColor.java:56)
at hudson.model.Result.<clinit>(Result.java:52)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at com.sun.proxy.$Proxy7.<clinit>(Unknown Source)
at sun.reflect.GeneratedSerializationConstructorAccessor44.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:929)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1761)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1970)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1895)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
at java.util.HashMap.readObject(HashMap.java:1030)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:979)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1873)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1970)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1895)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1777)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)
at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
at hudson.remoting.UserRequest.perform(UserRequest.java:98)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:695)
Finished: FAILURE
Found the answer a while back. Please refer to this for those who may need the solution in the future Jenkins can't connect to window server - not enough permissions
A few days ago we decided to start using Guava in our Eclipse RCP application. I downloaded guava-14.0.1.jar from http://central.maven.org/maven2/com/google/guava/guava/14.0.1/.
After I had started eclipse.exe the application crashed. The .metadata/.log file contained the following errors:
!ENTRY org.eclipse.osgi 4 0 2013-08-12 15:56:32.033
!MESSAGE Application error
!STACK 1
java.lang.NoClassDefFoundError: com/google/common/base/Optional
at com.treeage.treeagepro.license.LicenseLevel.<clinit>(Unknown Source)
at com.treeage.treeagepro.license.LicenseInfo.<init>(Unknown Source)
at com.treeage.treeagepro.license.LicenseManager.<init>(Unknown Source)
at com.treeage.treeagepro.license.LicenseManager.getManager(Unknown Source)
at com.treeage.treeagepro.app.ApplicationWorkbenchAdvisor.initialize(Unknown Source)
at org.eclipse.ui.application.WorkbenchAdvisor.internalBasicInitialize(WorkbenchAdvisor.java:188)
at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1541)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4144)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at com.treeage.treeagepro.app.Application.start(Unknown Source)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Optional
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 31 more
There is no error if the application is running as an administrator.
The application is 64 bit, so this is not an UAC virtualization issue. But it looks like the problem is somehow connected with permissions.
guava-14.0.1.jar seems to be a valid OSGi bundle: https://code.google.com/p/guava-libraries/issues/detail?id=688 (At least I found all necessary headers in MANIFEST.MF)
Any suggestions?
I fixed my problem by wiping out C:\Users\<user_name>\.eclipse folder. It looks like the problem was somehow connected with OSGi (Equinox) temporary directories.
Double check if you have included the bundle in the feature that you are using in the product configuration of your RCP.
Double check if you are using the right symbolic name and if you are requiring the right version.
I had a problem like yours because the guava jar was not being copied properly to the target platform at build time.
In my case I had to add the following in the feature.xml to ensure the version 0.14.1 was being copied since Eclipse Xtext and other components uses an older one:
<requires>
<import plugin="com.google.guava" version="0.14.1"/>
....
</requires>
<plugin
id="com.google.guava"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
Based on your last comment, I'd think this isn't Java or OSGi related, but probably just a filesystem permission issue.
You may want to:
check that particular folder and its subfolders and files for unusal permission requirements (right-click, properties, security tab),
delete the entire folder, recreate it, and try again to check for a different outcome.