2
votes

I have created a sample plugin application using RCP framework using Hello RCP framework. Then, I converted the project into Maven project in "configure" option. I need a mysql connector to perform some db operation; for that I have added the dependencies in the pom.xml file.

After building the application, it's able to create the maven dependency folder and put the required mysql jars. However, when I run the application it says its not able to find the Driver class. There is no error in the jar file which is there in Maven Dependency folder. If I manually put it in the build path its working fine.

Whenever I create a sample JAVA application and convert it into maven project and add these dependencies its working fine. Only for plug in project its not able to locate the jars required.

Below is the content of my pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample.plugin</groupId>
  <artifactId>com.sample.plugin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>

  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.18</version>
            <scope>Compile</scope>
        </dependency>

  </dependencies>
  <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

//Error message

Inside the connection class1:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver Error: unable to load driver class! at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at com.sample.plugin.DButil.getConnection(DButil.java:25) at com.sample.plugin.Application.start(Application.java:20) 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:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386) Picked up _JAVA_OPTIONS: -Xmx512M

1
Can you add to your post the full text of the error that is occurring? It would also help to see where you're trying to use this dependency in code.Sean Kuhlman
please post your erroradao7000
I have added the error message.Can you please check now?Srikant Barik
This is only happening when you build the jar, but it's not happening before building the jar?durron597
I am able to resolve the error now.I needed to add the JAR file by making it as an OSGi bundle.Below link was useful davidngos.blogspot.in/2013/10/…Srikant Barik

1 Answers

0
votes
  1. Download mySQL jdbc driver, if not already done
  2. Add this to your local repository (Due to licensing issues, you must download, you cannot download it from Maven public repository)
  3. Make sure you mark the dependency as runtime, since we do not require driver jar during compile. Javac compiles to the JDBC API interfaces.