Having an issue with Onejar-Maven-Plugin

Posted by reverendgreen on Stack Overflow See other posts from Stack Overflow or by reverendgreen
Published on 2010-06-03T16:20:26Z Indexed on 2010/06/03 16:24 UTC
Read the original article Hit count: 498

Filed under:
|
|
|

I am trying to package a simple maven java project (uses javax.persistence api) into a single jar using the onejar-maven-plugin. I can run the program fine in eclipse; however when execute the onejar I get the exception below. If someone could provide some insight, that would be appreciated.

Thanks, RG

Exception in thread "main" java.lang.reflect.InvocationTargetException
        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 com.simontuffs.onejar.Boot.run(Boot.java:306)
        at com.simontuffs.onejar.Boot.main(Boot.java:159)
Caused by: Exception [EclipseLink-30005] (Eclipse Persistence Services - 2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.PersistenceUnitLoadingExcept
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: com.simontuffs.onejar.JarClassLoader@190d11
Internal Exception: java.lang.ClassCastException: sun.misc.Launcher$AppClassLoader cannot be cast to com.simontuffs.onejar.JarClassLoader
        at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:126
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:133)
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:65)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:78)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
        at com.test.onejartest.App.main(App.java:19)
        ... 6 more
Caused by: java.lang.ClassCastException: sun.misc.Launcher$AppClassLoader cannot be cast to com.simontuffs.onejar.JarClassLoader
        at com.simontuffs.onejar.JarClassLoader.getByteStream(JarClassLoader.java:753)
        at com.simontuffs.onejar.Handler$1.getInputStream(Handler.java:50)
        at java.net.URL.openStream(Unknown Source)
        at org.eclipse.persistence.internal.jpa.deployment.ArchiveFactoryImpl.isJarInputStream(ArchiveFactoryImpl.java:124)
        at org.eclipse.persistence.internal.jpa.deployment.ArchiveFactoryImpl.createArchive(ArchiveFactoryImpl.java:106)
        at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.findPersistenceArchives(PersistenceUnitProcessor.java:213)
        at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.findPersistenceUnitInfoInArchives(JPAInitializer.java:134)
        at org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.findPersistenceUnitInfo(JPAInitializer.java:125)
        at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:98)
        ... 10 more

pom.xml:

...
<pluginRepositories>
   <pluginRepository>
    <id>onejar-maven-plugin.googlecode.com</id>
    <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
   </pluginRepository>
  </pluginRepositories>
  ...
  <build>
   <plugins>
    <plugin>
     <groupId>org.dstovall</groupId>
     <artifactId>onejar-maven-plugin</artifactId>
     <version>1.3.0</version>
     <executions>
      <execution>
       <configuration>
        <mainClass>com.test.onejartest.App</mainClass>
       </configuration>
       <goals>
        <goal>one-jar</goal>
       </goals>
      </execution>
     </executions>
    </plugin>
    <plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>2.3.1</version>
     <configuration>
      <target>1.6</target>
      <source>1.6</source>
     </configuration>
    </plugin>
   </plugins>   
  </build>
  ...
  <dependencies>
    <dependency>
     <groupId>javax.persistence</groupId>
     <artifactId>persistence-api</artifactId>
     <version>2.0.0</version>
    </dependency>
    <dependency>
     <groupId>org.eclipse.persistence</groupId>
     <artifactId>eclipselink</artifactId>
     <version>2.0.0</version>
    </dependency>    
    <dependency>
     <groupId>com.microsoft.sqlserver.jdbc</groupId>
     <artifactId>sqljdbc</artifactId>
     <version>4.0.0</version>     
    </dependency>
  </dependencies>

© Stack Overflow or respective owner

Related posts about java

Related posts about jpa