小编bla*_*iso的帖子

ClassNotFoundException,即使包含该类的jar正确存在于类路径中

我正在eclipse中配置一个新项目.我的项目有很多模块,其中一个名为eas.core.在我的eas.core模块的buildPath中,我添加了一个jar文件common.jcr.jar,其中包含一个名为的类ContentRepositorySettings,我将其用于我的代码中.但是在运行时,我仍然得到ClassNotFoundException如下所示的

java.lang.NoClassDefFoundError: cm/bao/common/jcr/ContentRepositorySettings
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2944)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.setupGlobalSettings(ElectronicArchivingApplicationImpl.java:33)
at cm.bao.eas.core.ElectronicArchivingApplicationImpl.start(ElectronicArchivingApplicationImpl.java:49)
at cm.bao.eas.ui.gwt.server.listner.ElectronicArchivingContextListner.contextInitialized(ElectronicArchivingContextListner.java:18)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: cm.bao.common.jcr.ContentRepositorySettings
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
Run Code Online (Sandbox Code Playgroud)

java eclipse exception classloader classnotfoundexception

8
推荐指数
1
解决办法
9068
查看次数

错误:无法更改表,因为在尝试删除表中的列时有待处理的触发事件

我在 liquibase 变更集中编写了一个 sql 标签。该sql代码假设在名为“Purchase”的表中进行数据迁移。所以我有以下sql查询:

UPDATE purchase
SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);
Run Code Online (Sandbox Code Playgroud)

然后,

ALTER TABLE purchase DROP COLUMN shop_id;
Run Code Online (Sandbox Code Playgroud)

但在尝试执行第二个查询时出现以下错误,该查询应该删除表中的“shop_id”列

ERROR: cannot ALTER TABLE  because it has pending trigger events
Run Code Online (Sandbox Code Playgroud)

请问这个错误是何时抛出的,我该如何解决它。

在我的liquibasechangese中,我的sql标签写如下

<sql>
     UPDATE purchase
     SET location_id = (SELECT location_id FROM shop WHERE shop.id = purchase.shop_id);        

     ALTER TABLE purchase DROP COLUMN shop_id;
</sql
Run Code Online (Sandbox Code Playgroud)

请问有人可以帮助我吗?在此先感谢您的帮助

sql postgresql liquibase

3
推荐指数
1
解决办法
6810
查看次数

Liquibase 将列类型从 Date 更改为 DateTime 而不删除包含的值

我正在使用 Liquibase 进行数据迁移。

我有一个名为 Document 的表,它已经包含值。

我的表文档包含列(id、name、dueDate)。DueDate 列的类型为 Date,我想将他的类型从 DATE 更改为 DATETIME。

我采用了以下策略

1- 创建一个 DATETIME 类型的新列 Duedatenew

2- 将duedate 列中的值复制到duedatenew

3-删除列duedate

4-将duedatenew列重命名为duedate

如以下变更集中所述

  <changeSet id="task-99" author="blaise">
        <addColumn tableName="document">
            <column name="duedatenew" type="DATETIME" />
        </addColumn>
        <update tableName="document">
            <column name="duedatenew" valueComputed="(SELECT duedate FROM document)" />
        </update>
        <dropColumn tableName="document" columnName="duedate" />
        <renameColumn tableName="document" oldColumnName="duedatenew"
        newColumnName="duedate" />
</changeSet>
Run Code Online (Sandbox Code Playgroud)

但是在第二步期间变更集的执行总是失败。数据复制总是失败。

请问我该如何解决?

java datetime date database-migration liquibase

3
推荐指数
1
解决办法
5492
查看次数