None of the available containers recognized the components
[be recognized] [components] [container] [containers] [deploy] [online] [recognized] [upgrade]
Symptom
Upgrade or deployment of a NetWeaver 6.40 or 7.0 system fails with the following error message:
Caught exception during application deployment from SAP J2EE Engine’s deploy service:
java.rmi.RemoteException: Error occurred while deploying ear file.
Reason: None of the available containers recognized the components of application
Other terms
deploy, upgrade, online, container
Reason and Prerequisites
Depending on the modules contained in an application bundle, each application has specific requirements for containers, which must be active in order to support the functionality provided by the application.
During deployment the application components are provided to the registered containers for deploy or update. Such containers are for example EJB container for EJB applications, Web container for Web applications, WebDynpro container for WebDynpro applications.
The containers supporting specific functionality are typically service modules deployed on the SAP J2EE Engine(e.g. EJB service, Servlet_JSP service, WebDynpro service).
If none of the registered containers recognizes the component to be deployed, the above error message is thrown and the deployment is aborted.
Usually the error is thrown when:
The container is stopped.The container is not deployed and does not exist on the systemThe container cannot be started.Solution
In general all required containers must be running before trying to deploy an application.
Make sure that all usage types required for the deployment of the application are installed and the version of the components is consistent.
Here are the steps, which might be used in troubleshooting the error.
1. Determine the container, which is responsible for the deployment.
The names of the required containers can be found in META-INF/application-j2ee-engine.xml inside the component’s SDA archive. For example:
If there is no such entry in the deployment descriptor, it either means that the components in the application are J2EE standard – servlets, jsps, ejbs, etc. or there is an error in the deployment descriptor and the application provider must be informed.
If it is not possible to determine the responsible container, contact the application development team, responsible for the application component.2. Once the responsible container is determined:Check the available containers on the systemconnect to the J2EE server via telnet by using J2EE Engine admin account.jump to a server node:jump 0add deploy command group:add deployget a list of all available containers:container_info -acheck the service, which provides the container:
container_info -c
If the required container is not listed in the available containers, contact the providers of the service/container for further analysis.3. Once the service, which provides the container is determined.check if the service is started:lss | grep