0

我对 IBM WCM 和 IBM Portal 还很陌生;我正在使用以下版本:

  • IBM WebSphere Portal Server_8.0.0.0
  • IBM Web 内容管理器_8.0.0.0

我需要为 WCM 工作流创建自定义操作;到目前为止,我可以通过以下链接创建一个非常简单的自定义操作:WCM 自定义操作

现在我需要创建一个更复杂的自定义操作;在我的自定义操作中,我想使用 spring 4.0 和 Hibernate 4.3.0;所以我创建了一个 EAR 文件和一个 WAR 模块;在我的 WAR 模块中,在 WEB-INF/lib 目录下,我有以下 jar:

  • commons-pool-1.5.4.jar
  • spring-beans-4.0.0.RELEASE.jar
  • hibernate-core-4.3.0.Final.jar
  • dom4j-1.6.1.jar
  • spring-aop-4.0.0.RELEASE.jar
  • 验证-api-1.1.0.Final.jar
  • jandex-1.1.0.Final.jar
  • spring-context-support-4.0.0.RELEASE.jar
  • commons-math3-3.2.jar
  • javassist-3.18.1-GA.jar
  • antlr-2.7.7.jar
  • aspectjweaver-1.7.4.jar
  • hppc-0.5.4.jar
  • commons-dbcp-1.4.jar
  • spring-jdbc-4.0.0.RELEASE.jar
  • hibernate-commons-annotations-4.0.4.Final.jar
  • aopalliance-1.0.jar
  • jackson-mapper-asl-1.9.13.jar
  • spring-tx-4.0.0.RELEASE.jar
  • slf4j-log4j12-1.7.1.jar
  • log4j-1.2.17.jar
  • commons-io-2.4.jar
  • spring-web-4.0.0.RELEASE.jar
  • xml-apis-1.0.b2.jar
  • spring-core-4.0.0.RELEASE.jar
  • hibernate-spatial-4.3-SNAPSHOT.jar
  • spring-aspects-4.0.0.RELEASE.jar
  • hsqldb-2.0.0.jar
  • 同学-1.0.0.jar
  • jboss-logging-3.1.3.GA.jar
  • hibernate-validator-5.0.2.Final.jar
  • spring-orm-4.0.0.RELEASE.jar
  • hibernate-ehcache-4.3.0.Final.jar
  • slf4j-api-1.7.1.jar
  • commons-collections-3.2.1.jar
  • 杰克逊核心asl-1.9.13.jar
  • spring-expression-4.0.0.RELEASE.jar
  • commons-logging-1.1.3.jar
  • spring-context-4.0.0.RELEASE.jar
  • ehcache-core-2.6.6.jar
  • hibernate-jpa-2.1-api-1.0.0.Final.jar
  • spring-webmvc-4.0.0.RELEASE.jar 这是我的 web.xml 文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">
        <display-name>CoMiGeoMediaWeb</display-name>
        <welcome-file-list>
                <welcome-file>index.html</welcome-file>
                <welcome-file>index.htm</welcome-file>
                <welcome-file>index.jsp</welcome-file>
                <welcome-file>default.html</welcome-file>
                <welcome-file>default.htm</welcome-file>
                <welcome-file>default.jsp</welcome-file>
        </welcome-file-list>
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:application-context.xml</param-value>
        </context-param>
        <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
</web-app>

这是我的 plugin.xml 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<plugin id= "mitu.wcm.api.custom" 
    name= "Spring Custom Action" 
        version= "1.0.0" 
        provider-name= "IBM" >
        <extension-point id= "CoMiCustomActionFactory" name="CoMiCustomActionFactory" />
        <extension point="com.ibm.workplace.wcm.api.CustomWorkflowActionFactory" id= "CoMiCustomActionFactory" >
                <provider class= "it.wcm.api.custom.SpringCustomActionFactory"/>
        </extension>
</plugin>

当我尝试在我的 WAS 8 下部署 EAR 时,EAR 安装正常,但是当我尝试启动它时,出现以下错误:

[3/11/14 9:14:38:719 CET] 000000e7 RegistryLoade W   CWXRS0010W: Error while processing: file:/opt/IBM/WebSphere/wp_profile/installedApps/192Cell/CoMiGeoMedia.ear/CoMiGeoMediaWeb.war/WEB-INF/plugin.xml
                                 java.lang.ClassCastException: com.ibm.wkplc.extensionregistry.Extension incompatible with com.ibm.wkplc.extensionregistry.ExtensionPoint
    at com.ibm.wkplc.extensionregistry.RegistryCache.putExtensionPoint(RegistryCache.java:341)
        at com.ibm.wkplc.extensionregistry.PluginDescriptor.convertObjectsToProxies(PluginDescriptor.java:296)
        at com.ibm.wkplc.extensionregistry.ExtensionRegistry.addPlugin(ExtensionRegistry.java:339)
        at com.ibm.wkplc.extensionregistry.ExtensionRegistry.addPlugin(ExtensionRegistry.java:319)
        at com.ibm.wkplc.extensionregistry.RegistryLoader.loadPluginXml(RegistryLoader.java:482)

我将完整的日志添加到问题中。谁能告诉我我错在哪里?spring 和 hibernate 是否会导致列出的错误?呵呵,我能解决吗?

4

1 回答 1

0

尝试以下 plugin.xml 文件 - 记下属性名称/值的属性排序和空格删除:

<?xml version="1.0" encoding="UTF-8"?>
<plugin provider-name="IBM" version="1.0.0" name="Spring Custom Action" id="com.ibm.workplace.wcm.api.custom">
    <extension-point name="CoMiCustomActionFactory" id="CoMiCustomActionFactory" />
    <extension point="com.ibm.workplace.wcm.api.CustomWorkflowActionFactory" id="CoMiCustomActionFactory" >
            <provider class="it.wcm.api.custom.SpringCustomActionFactory"/>
    </extension>
</plugin>

希望这可以帮助。确保您具有包含的 JAR 文件以编译代码。您还需要:

  • ilwwcm-api.jar - 位于:$PORTAL_HOME$/wcm/prereq.wcm/wcm/shared/app
  • wp.​​base.jar - 位于:$PORTAL_HOME$/base/wp.base/shared/app

您还需要确保在部署应用程序时,它与 WebSphere_Portal 实例相关联并且它是启动行为(企业应用程序 --> Deployed_WAR --> 启动行为),它的启动顺序设置为 30(默认为WCM)。

皮特。

于 2015-01-30T08:01:00.613 回答