2010-12-31 4 views
0

У меня возникают проблемы с log4j и hbm2ddl. Когда я помещаю SMTPAppender в свой файл log4j.xml, я получаю это ClaasNotFoundException.ClassNotFoundException javax.mail.internet.AddressException при запуске hibernate3: hbm2ddl

Любые подсказки о том, как это решить?

Это мои файлы конфигурации и StackTrace:

stackctrace:

 [INFO] Scanning for projects... 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Building Unnamed - Mail-logging-and-hbm2ddl:Mail-logging-and-hbm2ddl:jar:1.0 
    [INFO] task-segment: [package] 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] [resources:resources {execution: default-resources}] 
    [WARNING] Using platform encoding (windows-1252 actually) to copy filtered resources, i.e. build is platform dependent! 
    [INFO] Copying 3 resources 
    [INFO] Copying 2 resources 
    [INFO] [compiler:compile {execution: default-compile}] 
    [INFO] Nothing to compile - all classes are up to date 
    [INFO] Preparing hibernate3:hbm2ddl 
    [WARNING] Removing: hbm2ddl from forked lifecycle, to prevent recursive invocation. 
    [INFO] [resources:resources {execution: default-resources}] 
    [WARNING] Using platform encoding (windows-1252 actually) to copy filtered resources, i.e. build is platform dependent! 
    [INFO] Copying 3 resources 
    [INFO] Copying 2 resources 
    [INFO] [hibernate3:hbm2ddl {execution: default}] 
    [INFO] Configuration XML file loaded: file:/D:/DEV/PROJECTS/Mail%20logging%20and%20hbm2ddl/src/main/resources/hibernate.cfg.xml 
    [FATAL ERROR] org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo#execute() caused a linkage error (java.lang.NoClassDefFoundError) and may be out-of-date. Check the realms: 
    [FATAL ERROR] Plugin realm = app0.child-container[org.codehaus.mojo:hibernate3-maven-plugin:2.2] 
    urls[0] = file:/d:/Settings/U190552/.m2/repository/org/codehaus/mojo/hibernate3-maven-plugin/2.2/hibernate3-maven-plugin-2.2.jar 
    urls[1] = file:/d:/Settings/U190552/.m2/repository/log4j/log4j/1.2.14/log4j-1.2.14.jar 
    urls[2] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/hibernate-tools/3.2.3.GA/hibernate-tools-3.2.3.GA.jar 
    urls[3] = file:/d:/Settings/U190552/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar 
    urls[4] = file:/d:/Settings/U190552/.m2/repository/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar 
    urls[5] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801.jar 
    urls[6] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/hibernate-core/3.3.1.GA/hibernate-core-3.3.1.GA.jar 
    urls[7] = file:/d:/Settings/U190552/.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar 
    urls[8] = file:/d:/Settings/U190552/.m2/repository/commons-collections/commons-collections/3.1/commons-collections-3.1.jar 
    urls[9] = file:/d:/Settings/U190552/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar 
    urls[10] = file:/d:/Settings/U190552/.m2/repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar 
    urls[11] = file:/d:/Settings/U190552/.m2/repository/org/slf4j/slf4j-api/1.5.6/slf4j-api-1.5.6.jar 
    urls[12] = file:/d:/Settings/U190552/.m2/repository/org/codehaus/mojo/hibernate3/maven-hibernate3-api/2.2/maven-hibernate3-api-2.2.jar 
    urls[13] = file:/d:/Settings/U190552/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar 
    urls[14] = file:/d:/Settings/U190552/.m2/repository/org/apache/geronimo/specs/geronimo-jta_1.0.1B_spec/1.1.1/geronimo-jta_1.0.1B_spec-1.1.1.jar 
    urls[15] = file:/d:/Settings/U190552/.m2/repository/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar 
    urls[16] = file:/d:/Settings/U190552/.m2/repository/org/slf4j/jcl-over-slf4j/1.5.6/jcl-over-slf4j-1.5.6.jar 
    urls[17] = file:/d:/Settings/U190552/.m2/repository/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk14/2.2/maven-hibernate3-jdk14-2.2.jar 
    urls[18] = file:/d:/Settings/U190552/.m2/repository/org/codehaus/mojo/hibernate3/maven-hibernate3-jdk15/2.2/maven-hibernate3-jdk15-2.2.jar 
    urls[19] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/hibernate-entitymanager/3.4.0.GA/hibernate-entitymanager-3.4.0.GA.jar 
    urls[20] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar 
    urls[21] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/hibernate-commons-annotations/3.1.0.GA/hibernate-commons-annotations-3.1.0.GA.jar 
    urls[22] = file:/d:/Settings/U190552/.m2/repository/org/hibernate/hibernate-annotations/3.4.0.GA/hibernate-annotations-3.4.0.GA.jar 
    urls[23] = file:/d:/Settings/U190552/.m2/repository/javax/transaction/jta/1.1/jta-1.1.jar 
    urls[24] = file:/d:/Settings/U190552/.m2/repository/javassist/javassist/3.4.GA/javassist-3.4.GA.jar 
    urls[25] = file:/d:/Settings/U190552/.m2/repository/jboss/jboss-common/4.0.2/jboss-common-4.0.2.jar 
    urls[26] = file:/d:/Settings/U190552/.m2/repository/slide/webdavlib/2.0/webdavlib-2.0.jar 
    urls[27] = file:/d:/Settings/U190552/.m2/repository/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar 
    [FATAL ERROR] Container realm = plexus.core 
    urls[0] = file:/D:/DEV/TOOLS/apache-maven-2.2.1/lib/maven-2.2.1-uber.jar 
    [INFO] ------------------------------------------------------------------------ 
    [ERROR] FATAL ERROR 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] javax/mail/internet/AddressException 
    javax.mail.internet.AddressException 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Trace 
    java.lang.NoClassDefFoundError: javax/mail/internet/AddressException 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
    at java.lang.Class.getConstructor0(Class.java:2699) 
    at java.lang.Class.newInstance0(Class.java:326) 
    at java.lang.Class.newInstance(Class.java:308) 
    at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:174) 
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:150) 
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:163) 
    at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:425) 
    at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:394) 
    at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:829) 
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:712) 
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:618) 
    at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470) 
    at org.apache.log4j.LogManager.<clinit>(LogManager.java:122) 
    at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:209) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:221) 
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151) 
    at org.codehaus.mojo.hibernate3.configuration.AnnotationComponentConfiguration.createConfiguration(AnnotationComponentConfiguration.java:93) 
    at org.codehaus.mojo.hibernate3.configuration.AbstractComponentConfiguration.getConfiguration(AbstractComponentConfiguration.java:51) 
    at org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(Hbm2DDLExporterMojo.java:87) 
    at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(HibernateExporterMojo.java:152) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    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 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
    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 com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) 
    Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) 
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) 
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) 
    at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 47 more 
    [INFO] ------------------------------------------------------------------------ 
    [INFO] Total time: 2 seconds 
    [INFO] Finished at: Fri Dec 31 11:42:20 CET 2010 
    [INFO] Final Memory: 10M/24M 
    [INFO] ------------------------------------------------------------------------ 

log4j.xml

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

     <appender name="email" class="org.apache.log4j.net.SMTPAppender"> 
      <param name="Threshold" value="error" /> 
      <param name="BufferSize" value="10" /> 
      <param name="SMTPHost" value="smtp.host" /> 
      <param name="From" value="[email protected]" /> 
      <param name="To" value="[email protected]" /> 
      <param name="Subject" value="[Site] Error - TST" /> 
      <param name="LocationInfo" value="false" /> 
      <layout class="org.apache.log4j.HTMLLayout"> 
       <param name="LocationInfo" value="false" /> 
      </layout> 
     </appender> 

     <root> 
      <priority value="DEBUG" /> 
      <appender-ref ref="email" /> 
     </root> 

    </log4j:configuration> 

pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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>Mail-logging-and-hbm2ddl</groupId> 
<artifactId>Mail-logging-and-hbm2ddl</artifactId> 
<version>1.0</version> 


<dependencies> 
    <dependency> 
<groupId>log4j</groupId> 
<artifactId>log4j</artifactId> 
<version>1.2.16</version> 
</dependency> 
    <dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId> 
<version>3.8.1</version> 
<scope>test</scope> 
</dependency> 
<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate</artifactId> 
<version>3.2.6.ga</version> 
<exclusions> 
<!-- We need a higher version of ehcache --> 
<exclusion> 
<groupId>net.sf.ehcache</groupId> 
<artifactId>ehcache</artifactId> 
</exclusion> 
</exclusions> 
</dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
<groupId>commons-dbcp</groupId> 
<artifactId>commons-dbcp</artifactId> 
<version>1.2.2</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-beans</artifactId> 
<version>2.5.4</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-aop</artifactId> 
<version>2.5.4</version> 
</dependency> 
</dependencies> 

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>false</filtering> 
     </resource> 
     <resource> 
      <directory>src/main/resources-${targetprofile}</directory> 
      <filtering>false</filtering> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
<artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
<configuration> 
<source>${javaVersion}</source> 
<target>${javaVersion}</target> 
<encoding>UTF-8</encoding> 
</configuration> 
</plugin> 
<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>hibernate3-maven-plugin</artifactId> 
<version>2.2</version> 
<executions> 
<execution> 
    <phase>process-classes</phase> 
    <goals> 
    <goal>hbm2ddl</goal> 
    </goals> 
</execution> 
</executions> 
<configuration> 
<componentProperties> 
    <propertyfile> 
    src/main/resources-${targetprofile}/configuration.properties 
    </propertyfile> 
    <export>false</export> 
    <drop>true</drop> 
    <outputfilename> 
    ${project.artifactId}-${project.version}-schema.sql 
    </outputfilename> 
</componentProperties> 
</configuration> 
     </plugin> 
    </plugins> 
</build> 

<properties> 
<javaVersion>1.6</javaVersion> 
</properties> 

</project> 

ответ

0

Из сообщения об ошибке, а также журнала отладки, выясняется, что зависимость javax.mail не является частью зависимостей, присутствующих при запуске hbm2ddl. Поскольку приведенное выше содержимое плохо отформатировано и, возможно, неполное, трудно сказать, почему. Одна из возможностей - javax.mail. Зависимость не включена. Или, если да, включено с неправильным (скажем runtime) объемом.

Чтобы проверить, не работает ли он, удалите SMTPAppender с log4j.xml. Это поможет сузить проблему.

+0

Thans для быстрого ответа. Действительно, проверили форматирование, теперь должны выглядеть лучше. Зависимость от javax.mail включена в pom, область по умолчанию (так что ее время компиляции). Если я удалю все хорошо, но мне это нужно – DBC

1

Это другой вопрос дал мне ответ answer Так anwser должен добавить зависимость javax.mail в плагин следующим образом:

<build> 
.... 

<plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>hibernate3-maven-plugin</artifactId> 
      <version>2.0</version> 
      <executions> 
       <execution> 
        <phase>process-classes</phase> 
        <goals> 
         <goal>hbm2ddl</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <componentProperties> 
        <propertyfile> 
         src/main/resources-${targetprofile}/configuration.properties 
        </propertyfile> 
        <export>false</export> 
        <drop>true</drop> 
        <outputfilename> 
         ${project.artifactId}-${project.version}-schema.sql 
        </outputfilename> 
       </componentProperties> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>javax.mail</groupId> 
        <artifactId>mail</artifactId> 
        <version>1.4.3</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
Смежные вопросы