title: Creating an OpenXava 4.6 portlet for Liferay 6.1.1 CE
body: <p>I created a portlet in OpenXava 4.6. But it is not running properly once deployed under Liferay 6.1.1 CE GA.</p>
  
  <p>These are the problems:</p>
  
  <p>a.) The web.xml created by OX 4.5.1 and 4.6 is not recognized by Liferay 6.1</p>
  
  <pre><code>15:23:28,665 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:182] Processing &lt;..&gt;.war. This is attempt 2.
  15:23:28,673 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][PortletAutoDeployListener:77] Copying portlets for ../liferay-portal-6.1.1-ce-ga2/deploy/&lt;..&gt;.war
  15:23:28,676 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:1674] ../liferay-portal-6.1.1-ce-ga2/deploy/&lt;..&gt;.war does not have a WEB-INF/liferay-plugin-package.xml or WEB-INF/liferay-plugin-package.properties
  15:23:28,677 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying &lt;..&gt;.war
  15:23:33,110 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:210] com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: web.xml must be updated to the Servlet 2.4 specification
  </code></pre>
  
  <p>b.) The web.xml file needs to have this header:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;web-app id=".." version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  &lt;http://java.sun.com/xml/ns/j2ee%5C&gt;" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance\
  &lt;http://www.w3.org/2001/XMLSchema-instance%5C&gt;"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\
  &lt;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd%5C&gt;"&gt;
  
  &lt;display-name&gt;...&lt;/display-name&gt;
  ...
  </code></pre>
  
  <p>c.) Even after modifying the "web.xml" file as per above (and creating a new WAR file) then Liferay is able to load the portlet, and it appears on the list of available portlets. BUT the portlet does not work:</p>
  
  <pre><code>15:35:01,457 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][PortletAutoDeployListener:87] Portlets for ../liferay-portal-6.1.1-ce-ga2/deploy/&lt;..&gt;.war copied successfully. Deployment will start in a few seconds.
  15:35:04,651 INFO  [pool-2-thread-2][HotDeployImpl:178] Deploying &lt;..&gt; from queue
  15:35:04,653 INFO  [pool-2-thread-2][PluginPackageUtil:1033] Reading plugin package for &lt;..&gt;
  15:35:04,653 WARN  [pool-2-thread-2][PluginPackageUtil:1131] Plugin package on context &lt;..&gt; cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file
  </code></pre>
  
  <p>d.) I manually added the file "liferay-plugin-package.xml" to the WAR file but Liferay still does not show the portlet properly.</p>
  
  <p>Any suggestions welcome. Thanks.</p>