java - WCC 中自定义 Java 组件出现 NoClassDefFoundError

标签 java classpath oracle-ucm

我正在尝试为 创建自定义 Java 组件。

它可以正确安装,但是当我运行代码时,我得到:
系统代码执行错误。无法创建服务。 java.lang.NoClassDefFoundError:com/lowes/content/edam/massMetaDataUpdate/service/ServiceApplication。

component.hda 文件如下所示:

<?hda version="11.1.1.8.0PSU-2015-01-08 07:49:21Z-r123144" jcharset="UTF8" encoding="utf-8"?>
@Properties LocalData
ComponentName=LowesMassMetadataUpdater
blDateFormat=M/d{/yy}{ h:mm[:ss]{ a}}!mAM,PM!tAmerica/New_York
classpath=$COMPONENT_DIR/classes
hasPreferenceData=0
libpath=$COMPONENT_DIR/libs
preventAdditionalComponentDowngrade=0
version=2016_06_08(build 1)
@end

作为引用,我的服务类的开头如下所示:

包 com.lowes.content.edam.massMetaDataUpdate.service;

import intradoc.server.Service;

public class MMUService extends Service
{  //this is the line that is throwing the error.
   private ServiceApplication app = new ServiceApplication();

   /** Default Constructor - Does Nothing */
   public MMUService() { }

   //rest of class omitted for brevity
}

我的组件在 MMUService 类中配置启动,该类与找不到的类位于同一包中。两个类文件直接位于同一文件夹中。那么为什么它可以找到初始服务类,但不能找到同一包中包含的帮助程序类呢?

<小时/>

组件向导中的高级build设置

除以下内容外均为空白:

自定义类路径: $COMPONENT_DIR/classes
自定义库路径: $COMPONENT_DIR/libs

最佳答案

对于初学者,我会使用 ServiceHandler而不是服务。

确保您在“构建”>“高级设置”下有一个 installID。

可以在此处找到有关构建自定义组件的一些其他阅读内容:

关于java - WCC 中自定义 Java 组件出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37706883/

相关文章:

Java:执行连接变量和文字的 StringBuilder.indexOf() 的开销

java - 带有来自 Jar 的多个 XML 文件的 Spring ApplicationContext

java - 如何在 UCM/Stellent 中强制请求或抑制主文件丢失错误?

content-management-system - Oracle UCM - ridc - 获取文档的所有版本

java - java 或 vaadin 中特定日期到达时显示通知

java - Jboss ws wsdl问题

java - 设置 CLASSPATH 以正确运行 Duke

oracle - 从后端访问 UCM 内容

java - 如何在提交期间捕获 SQLException?

Java - 构建类路径和运行时类路径优先级中的相同类