Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行jar时未找到HikariCP_Java_Hibernate_Hikaricp - Fatal编程技术网

Java 运行jar时未找到HikariCP

Java 运行jar时未找到HikariCP,java,hibernate,hikaricp,Java,Hibernate,Hikaricp,在一个项目中,我们将Hibernate与HikariCP结合使用,并且在Eclipse中一切都很好。但一旦我生成了一个jar文件(Maven),就再也找不到hikaricp了。我已经从各个可能的角度考虑了这个问题,但我无法找出问题所在 persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:x

在一个项目中,我们将Hibernate与HikariCP结合使用,并且在Eclipse中一切都很好。但一旦我生成了一个jar文件(Maven),就再也找不到hikaricp了。我已经从各个可能的角度考虑了这个问题,但我无法找出问题所在

persistence.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.jdbc.url" value="jdbc:mysql://**.**.**.**:3306/C3?useUnicode=yes&amp;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&amp;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>

org.hibernate.jpa.HibernatePersistenceProvider
net.clanwolf.c3.transfer.pojos.User
net.clanwolf.c3.transfer.pojos.RolePlayStory
net.clanwolf.c3.transfer.pojos.RolePlayCharacter
net.clanwolf.c3.transfer.pojos.RolePlayStoryVar2
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>

    ...

    <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>

4.0.0
...
mysql
mysql连接器java
6.0.5
org.hibernate
冬眠核心
5.1.0.1最终版本
org.hibernate
休眠实体管理器
5.1.0.1最终版本
org.hibernate
休眠ehcache
5.1.0.1最终版本
com.zaxxer
希卡里普
2.6.1
org.hibernate
冬眠
5.2.7.最终版本
...
org.springframework
春季甲虫
4.2.2.1发布
org.springframework
spring上下文
4.2.2.1发布
org.springframework
德克萨斯州春季
4.2.2.1发布
org.springframework.security
spring安全配置
4.2.1.1发布
...
org.hibernate.common
hibernate commons注释
5.0.0.1决赛
org.hibernate.javax.persistence
hibernate-jpa-2.1-api
1.0.0.1决赛
...
如果我在Eclipse中运行此功能,则一切正常:

01:14:05436信息HikariDataSource:70-HikariPool-1-已启动

如果我从creates jar运行它,它会说:

01:11:14631警告连接提供程序启动器:256-HH000472:Hikari 遇到属性,但未找到Hikari ConnectionProvider 在类路径上找到;这些属性将被忽略。 01:11:14634警告连接:71-HHH10001002:使用Hibernate 内置连接池(不用于生产!)01:11:14639信息 连接:127-hh10001005:使用驱动程序[com.mysql.cj.jdbc.driver] 在URL [jdbc:mysql://212.227.253.80:3306/C3?useUnicode=yes&characterEncoding=UTF-8]


文件肯定在类路径中,我不明白为什么找不到它。 非常感谢您的帮助

已解决

我的项目是用maven shade构建的。显然,如果hikariCP作为类文件(而不是jar)包含在结果jar包中,那么它根本不起作用。如果我在jar旁边的文件系统中提供CP jar并将其添加到清单中,就会找到它们


我不知道为什么它不会首先使用包中的类文件,但是。。。它们位于该文件中,并且位置正确,但hikari不会看到它们。

文件肯定位于类路径中:如果是,则不会出现此错误。你如何运行你的应用程序?它首先是哪种应用程序?如果部署在web服务器上,它是如何部署的?它是一个java控制台应用程序。实际上是一个游戏服务器。它连接到数据库,并为通过nadron框架连接的本地java客户端提供访问点。Maven创建了一个jar文件,我从命令行(java-jarblah.jar)运行它。稍后,这将通过命令行在服务器上启动。那么,如何运行它呢?发布命令。发布jar文件的内容。张贴其清单。发布目录和jar文件的结构。如果您不提供任何详细信息,我们也无能为力。这里的区别是它是从Eclipse工作的,而不是从命令行工作的。我认为,这种结构并没有真正的帮助。除此之外,整个事情是相当大的,很难反映出这里的完整结构和任何东西……那么祝你好运。