我正在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) 我在 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)
请问有人可以帮助我吗?在此先感谢您的帮助
我正在使用 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 ×2
liquibase ×2
classloader ×1
date ×1
datetime ×1
eclipse ×1
exception ×1
postgresql ×1
sql ×1