Зависимость SQLServerDriver maven вызывает ошибки - PullRequest
0 голосов
/ 21 марта 2019

Чтобы исправить ошибку org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.microsoft.sqlserver.jdbc.SQLServerDriver], я добавил эту зависимость в мой pom:

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>6.1.0.jre7</version>
        </dependency>

, которая является зависимостью открытого кода для драйвера соединения SQLServer, но когда я ее поставил, ошибка моя pom.появляется xml:

Missing artifact org.codehaus.jackson:jackson-mapper-asl:jar:2.8.1

ОБНОВЛЕНО:

Если я все равно запускаю приложение, консоль журнала показывает эту трассировку:

15:42:28,432 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 50) MSC000001: Failed to start service jboss.persistenceunit."vp301b-ear.ear/vp301b.war#unidadPersistencia": org.jboss.msc.service.StartException in service jboss.persistenceunit."vp301b-ear.ear/vp301b.war#unidadPersistencia": java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ClassLoadingException
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:103)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_80]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_80]
    at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_80]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1]
Caused by: java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ClassLoadingException
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1404)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:857)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:425)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:849)
    at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:200)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$600(PersistenceUnitServiceImpl.java:57)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:99)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.ClassLoadingException from [Module "deployment.vp301b-ear.ear.vp301b.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.6.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1]
    ... 14 more

Когда я пытаюсь скомпилировать его, используяmvn comile, это результат:

 Failed to execute goal on project vp301b-war: Could not resolve dependencies for project es.xunta.amtega.vp301b:vp301b-war:war:1.0-SNAPSHOT: Failure to find org.codehaus.jackson:jackson-mapper-asl:jar:2.8.1 in http://nexus.xunta.local/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of amtega has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :vp301b-war

1 Ответ

0 голосов
/ 21 марта 2019

Как уже отмечал khmarbaise, проблема в том, что jackson-mapper-asl-2.8.1.jar недоступен в вашем хранилище.Однако я вижу, что mssql-jdbc-6.1.0.jre7.jar имеет транзитивную зависимость от версии 1.9.2, а не 2.8.1, от jackson-mapper-asl, поэтому я предполагаю, что то, что вы указали, неверно (возможно, вы делали много попыток).Я предлагаю попробовать с версией 6.4.0.jre7 драйвера JDBC, потому что он вообще не зависит от jackson-mapper-asl и является последней доступной версией на основе jre7.

Также обратите внимание, что драйвер JDBC должен быть включен не в classpath вашей войны, а в classpath сервера приложений (я предполагаю, что ваше веб-приложение обращается к БД надлежащим образом, то есть через предоставленный серверомпул соединений, не через DriverManager);это означает, что драйвер не должен зависеть от области компиляции в вашем POM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...