title: WebSphere Portal: Update/Delete a War
body: <p>I need to update a portlet on the WebSphere Portal 6.0. I have tried to use xmlaccess.bat. Here is my DeployPortlet.xml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;request
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="PortalConfig_1.4.xsd"
  type="update"
  create-oids="true"&gt;
  
  &lt;portal action="locate"&gt;
  
      &lt;!-- The uid must match uid attribute of portlet-app in portlet.xml. --&gt;
      &lt;web-app action="update" active="true" uid="com.firstlinesoftware.oo.portlet.TestPortlet
         &lt;url&gt;file:///$server_root$/installableApps/TestPortlet.war&lt;/url&gt;
         &lt;!-- The uid must match uid attribute of concrete-portlet-app in portlet.xml. --&gt;
         &lt;portlet-app action="update" active="true" uid="TestPortlet"&gt;
            &lt;!-- The name attribute must match content of portlet-name subtag  of concrete-portlet in portlet.xml. --&gt;
            &lt;portlet action="update" active="true" objectid="theIbmPortletApiPortlet" name="TestPortlet"/&gt;
          &lt;/portlet-app&gt;
      &lt;/web-app&gt;
  
      &lt;!-- Parent element under which the new page is inserted --&gt;
      &lt;content-node action="locate" objectid="parentPage" uniquename="ibm.portal.rational.portlets"/&gt;
  
      &lt;!-- The new page. 
           The contentparentref attribute must match the objectid of the parent. 
           Change the uniquename attribute to create another page. --&gt;
      &lt;content-node action="update" uniquename="ibm.portal.TestPortletPage"  ordinal="last" content-parentref="parentPage" active="true" allportletsallowed="false" create-type="explicit" type="page"&gt;
          &lt;supported-markup markup="html" update="set"/&gt;
          &lt;localedata locale="en"&gt;&lt;title&gt;TestPortletPage&lt;/title&gt;&lt;/localedata&gt;
  
          &lt;component action="update" ordinal="100" type="container" orientation="H"&gt;
              &lt;component action="update" ordinal="100" type="control"&gt;
                  &lt;!-- The portletref must match the objectid attribute of the portlet --&gt;
                  &lt;portletinstance action="update" portletref="theIbmPortletApiPortlet"/&gt;
              &lt;/component&gt;
          &lt;/component&gt;
      &lt;/content-node&gt;
  
  &lt;/portal&gt;
  </code></pre>
  
  <p></p>
  
  <p>When I use this script for the first time everything is ok. But when I try to update the portlet with this script (everywhere <code>action="update"</code>) the exception occure: DuplicateAppException. </p>
  
  <p>Then I have tried to delete this portlet via the script:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;request
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="PortalConfig_1.4.xsd"
  type="update"
  create-oids="true"&gt;
  
  &lt;!-- sample for uninstalling a web module --&gt;
  &lt;portal action="locate"&gt;
  
      &lt;!-- uid must match uid attribute of portlet-app in portlet.xml --&gt;
     &lt;web-app action="delete" active="true" uid="TestPortlet"&gt;
     &lt;/web-app&gt;
  
  &lt;/portal&gt;
  &lt;/request&gt;
  </code></pre>
  
  <p>but the warning occure: Can't delete the portlet(there is no such a web module) maybe it was deleted earlier. Actually this war file is deployed (checked this with an administration console)</p>
  
  <p>Can anybody, please, help me?</p>