Technical Blog Post
Abstract
Migrated artifact cannot deploy to BPM server
Body
Recently I worked with a client that had migrated the artifact from IID 8013 to 857. There was AIS (advanced integration service) in their process application and they now wanted to deploy the advanced project to Business Process Manager (BPM) server. These are the GUI steps they had taken:
- Open the application at workspace and migrate it to IID 8.5.7
- Execute "Deploy to Process Center" by IID 8.5.7
[16/10/14 15:57:35:855 JST] 00003e14 ServiceDeploy E
com.ibm.ws.bpm.servicedeploy.applications.ServiceDeployApplication
runTasks ビルド中に例外が発生しました。
com.ibm.websphere.management.exception.AdminException:
com.ibm.websphere.management.exception.AdminException:
org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDesc
riptorLoadException: WEB-INF/web.xml
at
com.ibm.ws.bpm.deploy.delegator.DelegatingTaskProvider.delegatePerformTa
sk(DelegatingTaskProvider.java:478)
at
com.ibm.ws.bpm.servicedeploy.applications.ServiceDeployApplication.runTa
sks(ServiceDeployApplication.java:637)
at
com.ibm.ws.bpm.servicedeploy.applications.ServiceDeployApplication.run(S
erviceDeployApplication.java:305)
.........
Caused by: java.lang.ClassCastException:
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl incompatible with
javax.xml.parsers.DocumentBuilderFactory
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at
org.eclipse.wst.common.internal.emf.utilities.DOMUtilities.newSchemaOnly
ValidationDocumentBuilder(DOMUtilities.java:818)
at
org.eclipse.wst.common.internal.emf.utilities.DOMUtilities.loadDocumentU
singSchemaOnlyValidation(DOMUtilities.java:1020)
at
org.eclipse.wst.common.internal.emf.resource.EMF2DOMRenderer.loadDocumen
t(EMF2DOMRenderer.java:402)
... 65 more
In the 8.5.7 release, the ClassCastException can be fixed by adding custom property "teamworks.servicedeploy.externalDependencyClassLoader" with value "pre8010Default" to IID connected Process Center server.
You can add the custom property in the following way:
Click Servers > Server Types > WebSphere application servers > server_name
and then, under Server Infrastructure,
Click Java and process management > Process definition > Java virtual machine > Custom properties
and then, under Server Infrastructure,
Click Java and process management > Process definition > Java virtual machine > Custom properties
Enabling the property will lead to one tiny issue. Some temp files can't be dropped/deleted automatically. If needed, you can delete them manually: <profile>/temp/com.ibm.bpm.fds/*
So to summarize, if you see the ClassCastException while deploying an application, you can solve it by setting the custom property as mentioned above. Once the deployment finishes, you can remove the property and restart server without the deletion issue, or you can keep the property and remove the temp files manually if needed.
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"","label":""},"Component":"","Platform":[{"code":"","label":""}],"Version":"","Edition":"","Line of Business":{"code":"","label":""}}]
UID
ibm11080741