我对 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 是否会导致列出的错误?呵呵,我能解决吗?