Troubleshooting: EJB deployment fails in the build process on Windows
On a Windows build system, the EJB deployment process might fail due to an IOException with error code 87.
Problem
The Windows command prompt has
a limitation on the length of the string used. In the Build and Deployment
tool, the ejbDeploy
Ant task used by the build process
invokes a command that delegates the actual work to the EJBDeploy
tool that is part of WebSphere Application Server. A classpath which
includes libraries from the WebSphere Application Server and the WebSphere
Commerce installation directories is passed into the command. If the
classpath is too long, the build process might fail with an error
message similar to the following:
C:\IBM\WebSphere\CommerceServer70\wcbd\wcbd-build-common.xml:446: java.io.IOException: Cannot run program "C:\IBM\WebSphere\AppServer\java\jre\bin\java.exe" (in directory "C:\IBM\WebSphere\CommerceServer70\wcbd\working\compile\ejb\WebSphereCommerceServerExtensionsData"): CreateProcess error=87, The parameter is incorrect.
For more information, see http://support.microsoft.c../830473
Solution
To work around the limitation, use the Windows subst command in a command prompt to shorten the path to the WebSphere Application Server (or the WebSphere Application Server Test Environment) and the WebSphere Commerce installation directories. For example:
subst Y: C:\IBM\WebSphere\AppServer
or
subst Z: C:\IBM\WebSphere\CommerceServer70
Then
set the was.home
or wc.home
properties
to the new values in WCBD_installdir/build.properties.
For more information regarding the subst command,
run the following command in a command prompt:
subst /?