在一个项目中,我们将Hibernate与HikariCP结合使用,并且在Eclipse中一切都很好。但一旦我生成了一个jar文件(Maven),就再也找不到hikaricp了。我已经从各个可能的角度考虑了这个问题,但我无法找出问题所在。。。
坚持不懈xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="starmap" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>net.clanwolf.c3.transfer.pojos.User</class>
<class>net.clanwolf.c3.transfer.pojos.RolePlayStory</class>
<class>net.clanwolf.c3.transfer.pojos.RolePlayCharacter</class>
<class>net.clanwolf.c3.transfer.pojos.RolePlayStoryVar2</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
<property name="javax.persistence.html" target="_blank">jdbc.url" value="jdbc:mysql://**.**.**.**:3306/C3?useUnicode=yes&characterEncoding=UTF-8" />
<property name="current_session_context_class" value="thread" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<!-- Hikari connection pool -->
<property name="hibernate.hikari.dataSource.url" value="jdbc:mysql://**.**.**.**:3306/C3?useUnicode=yes&characterEncoding=UTF-8" />
<property name="hibernate.hikari.dataSource.user" value="**"/>
<property name="hibernate.hikari.maximumPoolSize" value="100" />
<property name="hibernate.hikari.idleTimeout" value="30000" />
<property name="hibernate.hikari.dataSource.cachePrepStmts" value="true" />
<property name="hibernate.hikari.dataSource.prepStmtCacheSize" value="250" />
<property name="hibernate.hikari.dataSource.prepStmtCacheSqlLimit" value="2048" />
<property name="hibernate.hikari.dataSource.useServerPrepStmts" value="true" />
</properties>
</persistence-unit>
</persistence>
波姆。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>
...
<dependencies>
<!-- Database persistence -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!-- <version>5.1.33</version> -->
<version>6.0.5</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.1.0.Final</version>
<!-- <version>5.0.3.Final</version> -->
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.1.0.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-hikaricp -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-hikaricp</artifactId>
<version>5.2.7.Final</version>
</dependency>
...
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
<!--@Transactional -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
...
<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>5.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
...
</dependencies>
</project>
如果我在Eclipse中运行此功能,则一切正常:
01:14:05,436信息HikariDataSource: 70-HikariPool-1-开始。
如果我从创建罐运行它,它会说:
01:11:14,631WARN ConnectionProviderInvator: 256-HHH000472:遇到Hikari属性,但在类路径上找不到Hikari ConnectionProvider;这些属性将被忽略。01:11:14,634WARN连接: 71-HHH10001002:使用Hibernate内置连接池(不用于生产使用!)01:11:14,639INFO连接:127-HHH10001005:使用驱动程序[com.mysql.cj.jdbc.驱动程序]在URL[jdbc:mysql://212.227.253.80:3306/C3?useUnicode=yes
文件肯定在类路径中,我不明白为什么找不到它。非常感谢您的帮助!
解决了的。
我的项目是用maven shade构建的。显然,如果hikariCP作为类文件(而不是jar)包含在结果jar包中,那么它根本不起作用。如果我在jar旁边的文件系统中提供CP jar并将其添加到清单中,就会找到它们。
我不知道为什么它一开始不只是使用包中的类文件,但是...他们在文件里,他们在正确的位置,但是光看不到他们。
我已经从spring入门指南下载了源代码(zip文件):http://spring.io/guides/gs/rest-service/ 在文件夹“Complete”中生成整个项目已成功。使用Gradle(Gradle run)运行生成的jar文件也是成功的。但当我尝试在Windows命令行中使用“java-jar build\libs\gs-rest-service-0.1.0.jar”手动运行
行中出现错误(JAXBContext.newInstance): 当它作为测试用例执行时,它运行良好,使用: 或mvn:Spring:引导运行 但在使用以下方法运行jar时会导致问题: 运行java-jar并使用postman命中时出错。 版本信息 同一个jar在开发服务器上运行良好,但不在临时服务器上运行。开发和登台服务器都有相同的环境(java版本、mvn,一切都一样)。我将这些依赖项添加到p
我使用NetBeans的教程在java中创建了一个程序,它在Windows中运行得很好。但是,当我尝试运行相同的在Linux(RedHat)中,我遇到以下异常: 线程“main”java中出现异常。lang.UnsupportedClassVersionError:JVMCFRE003主版本错误;类=我的/数字编辑/数字编辑UI,偏移量=6 通过运行此命令: java-jar NumberAddi
我尝试从Windows 8命令行使用maven插件,但失败了: java.lang.ClassNotFoundException:com.sun.mirror.apt.AnnotationProcessorFactory 我知道这表明Maven在我的JDK中找不到tools.jar,但是我不知道如何添加这个(当然JDK已经安装了)。 以下是有关我的配置的一些详细信息: 所以我也尝试在我的pom.x
我正在尝试使用AWS codebuild生成一个简单的docker应用程序,但遇到一个错误,其中找不到AWS命令: 我有一个超级简单的docker文件,它构建了一个简单的express应用程序: 我有一个超级简单的构建规范。yml构建docker容器并将其推送到aws注册表: 然而一旦运行,它抛出上面张贴的错误^^我不确定为什么没有找到aws cli utils?这里的指南: http://doc
通常我可以使用npm安装一个库,但是今天在安装yeoman时我遇到了这个错误。请帮助找出根本原因。 我查看了文件夹: C:\Program Files\nodejs\node\u模块\npm\bin\ 但是,请不要将node_modules文件夹视为所描述的错误。 我也试着找到npm-cli.js,看到它实际上在