+

Search Tips   |   Advanced Search

Use WebDAV with WebSphere Portal

  1. Overview
  2. Task webdav-deploy-zip-file
  3. Enable write access for WebDAV file store
  4. Use WebDAV with the portal theme
  5. Folder structure and reserved folder names
  6. Theme folders
  7. Other folders
  8. Filestore cache control
  9. Supported HTTP methods
  10. Serve HTTP OPTIONS requests to the server context root by WebDAV clients
  11. *.tmp files
  12. Appendix


Overview

Use Web-based Distributed Authoring and Versioning (WebDAV) to allow edting of web content using Windows tools.

To use WebDAV, configure a WebDAV client, for example AnyClient or BitKinex. After set up, we can access web content libraries using the following URL:

To get to theme folders...

For example...

We can create components or presentation templates by dragging a file into a corresponding folder. We can perform actions on several items at once. For example, drag multiple images into the image component folder. For each image, the file name is used for the component's name and title.

We can modify modify XML files defining the item's metadata and access control characteristics.

Using your preferred HTML editor, such as vi, we can open...

The WebDAV client accesses the web content library, downloads the template, and then uploads the changes.

WebDAV does not support editing...

Locking or unlocking an item through WebDAV will lock or unlock the item in Web Content Manager and the JCR database. Locking an item, folders, and files related to the content of the item locks the item's metadata and access control settings.

The file must be in a workflow state that allows editing.

Files representing data items are always named exactly like the corresponding content item. For example if you have an image component named myImage, the corresponding image file is also named myImage, without any suffix indicating the file type, such as .gif or .jpg. This can sometimes cause a problem when opening the file through WebDAV because the appropriate application for editing the file cannot be chosen automatically. To work around, either rename the component itself to include the file type (for example, myImage.gif), or manually start the editing application, and open the file from within the client.

The WebDAV tree begins at the WebDAV root...

Examples of WebDAV services...

WebDAV does not support https.

To use a Web server with WebDAV:

  1. From the WAS admin console select...

      Web servers | webserver name | Plug-in properties | Request and response

    ...and set...

      Accept content for all requests = true

  2. Regenerate the web server plug-in.

  3. Copy the file plugin-cfg.xml to the Plugin directory.

  4. Open plugin-cfg.xml and set AcceptAllContent to true.

  5. Restart the web server.


Task webdav-deploy-zip-file

To manage Page Builder theme artifacts, and to deploy iWidgets, use the webdav-deploy-zip-file task to upload archive or compressed files to portal WebDAV folders.

To create the archive file to deploy, on the source host, create a zip file of theme with all your static resources organized by type in to folders.

When you execute webdav-deploy-zip-file, by default the referenced target folder is replaced by the extracted contents of the referenced archive or compressed file. If there are files or folders contained in the referenced WebDAV folder, those files and folders are deleted before the new content is added. To avoid this behavior and merge the contents, set -DUpdateMode=merge to merge the contents of the archive into the content that already exists at the target URI.

If the WebDAV folder referenced by the target URI does not exist yet, it is created; in this case make sure to have a trailing slash ( / ) at the end of the target URI.

This task uploads archive or compressed files to portal WebDAV folders.

Use this task to upload archive or compressed files to portal WebDAV folders. For example, we can upload the archive MyModuleTheme.zip to the public folder of the file store by doing either one of the following:

Invocation example...

Mandatary parameters to be specified on the command line or in the file wkplc.properties...

WasUserid WebSphere Application Server user ID
WasPassword WAS password
PortalAdminId Portal administrator user ID
PortalAdminPwd Portal administrator password
TargetURI URI of the WebDAV folder where you want the archive or compressed file to be extracted. In the example, it resolves to:

PROFILE_HOME/temp/nodename/WebSphere_Portal/JCRFileStore/filestore/fs-type1/themes/MyTheme

ZipFilePath File system path to the archive or compressed file. Do not use this parameter combined with the parameter ZipFileClassPath.
ZipFileClassPath Java class path to the to the archive or compressed file. Do not use this parameter combined with the parameter ZipFilePath.
UpdateMode (=replace) Default value for this parameter is replace. To merge the content of the archive or compressed file with the content that already exists at the given URI, set this parameter to the value merge. In this case file that do not yet exist are created, existing files are updated, and no files are deleted.
VirtualPortalContext
VirtualPortalHost
Identify the virtual portal. Only pages contained in the specified virtual portal are refreshed. If you omit this parameter, by default no virtual portal page layout is refreshed.

An alternative to using webdav-deploy-zip-file is to copy MyModuleTheme.zip to the portal class path, for example...


Enable write access for WebDAV file store

By default only administrative users can perform write operations on specific folders of the WebDAV file store.

To enable write access for all authenticated users, in the WAS admin console, for the WP ConfigService resource environment provider, set...

Restart the portal server for the new setting to take effect.

Setting true applies to the filestore entry points for home directories for each user located at:

Users can modify only their own directories.


Use WebDAV with the portal theme

Entry point URL for themes...

Theme resources...

Skin resources...

Identify virtual portals using either host name or URL context...

We can obtain the entry point URL to the WebDAV file store from the service document under the URL...

The service document contains the top-level access point as follows:

<app:collection href="http://setgetweb.com/p/portal80//webdav/!ut/p/dav/fs-type1/">

     <atom:title>fs-type1</atom:title>

     <app:categories fixed="yes">
          . . . . .            
          <atom:category term="webdav"/>
          <atom:category term="filestore"/>
          . . . . .       
     </app:categories>

</app:collection>


Folder structure and reserved folder names

The fs-type1 WebDAV entry points provide the following set of predefined root folders used by themes:

The fs-type1 WebDAV entry points also provide the following set of predefined root folders. We can access them using the Remote Model function provided by the Enabler API:

The fs-type1 WebDAV entry points provide the following internal folder:

None of the folders listed here can be deleted, not even by an administrator.

The two sets of folders differ in the access control policy that guards access to the resources contained in those folders.


Theme folders

Each folder represents a WebDAV collection. Administer write access to the theme folders via the virtual resource THEME MANAGEMENT provided by portal access control.

WebDAV prevents the deletion of these folders. Even users with administrator rights cannot delete these folders and the data in them.


Other folders

Each of these folders represents a WebDAV collection. The access control policy for them is hardcoded as described for each folder.


Filestore cache control

The WebDAV file store supports serving timeout values for HTTP Cache Header entries.

We can use regular expressions to specify the time out value for elements in the filestore folder structure that match the regular expression. You need to add the following two custom properties to the WP Config Service resource environment provider with the following key = value properties:

The id value can consist of an arbitrary string. It is used only to establish the mapping between a regular expression and its associated timeout value. If there are multiple regular expressione that match a given filestore resource, the maximum of the associated time out values will be used.

All items under the /themes folder have an expiration time of 1800 seconds:

All items of a certain resource type, such as jpg or gif have an expiration time of 6000 seconds:

All css files in the themes folder have an expiration time of 8000 seconds:


Supported HTTP methods

WebDAV file store supports the following HTTP methods:


Serve HTTP OPTIONS requests to the server context root by WebDAV clients

Some WebDAV clients send an HTTP OPTIONS request to the server context root ( / ) to check whether the server supports WebDAV. To support these clients, the portal provides a web application called wp.webdav.options.was.

To enable this WAR file, adapt the application.xml files of the deployed Enterprise Application (EAR), wps.ear, so that wp.webdav.options.war is mapped to the context root ( / )...

  1. Export the EAR, wps.ear, through the WAS admin console.

    Expand the EAR:

      ./EARExpander.sh -ear directory/WebDAV_for_WebSphere_Portal.ear -operationDir directory webdav_expanded -operation expand

  2. Edit application.xml in the expanded EAR file directory and uncomment or add the following section:
    <module>
         <web>
              <web-uri>wp.webdav.options.war</web-uri>
              <context-root>/</context-root>
         </web>
    </module>
    

  3. Collapse the EAR:

    ./EARExpander.sh -ear directory/wps.ear  \
                     -operationDir directory/wps_expanded  \
                     -operation collapse \
    

  4. Update the enterprise application with these changes using the WAS admin console.

  5. Save the changes.

  6. Restart the portal for the changes to take effect.

Depending on how the web server is set up, this change might cause all requests to be routed to the web server plug-in. In this case refer to the web server documentation for information about how to route only OPTIONS requests to the plug-in.


*.tmp files

Recently, during a cumulative fix upgrade to a portal v8 instance, CONFIG-WP-PTF-CF failed with an OutOfMemoryError...

The zip file referenced in the exception represents a collection of theme files stored in the Portal JCR database. In our case it turned out that thousands of *.tmp files had accumulated in WebDAV. So many in fact, that the upgrade did not have enough heap space to process them all. IBM support indicated that this behavior is rare, and not an issue on all Portal v80x environments.

To diagnose...

  1. Installed BitKinex WebDAV client.

  2. Configured BitKinex to connect to primary node.

      Http/WebDAV (right-click) | New | Http/WebDAV

    ...and enter server address:

      myhost.mydomain:10039

    user id + password is main Portal administrator account

  3. After connecting, right click and change directory to...

      /myapp/mycontenthandler/dav/fs-type1/

    If nothing appears to be happening, click the Refresh button.

  4. Delete every .tmp file in this directory

  5. Continue by traversing through every sub-folder. We found *.tmp files under each hone.

      Portal8.0\contributions\
      Portal8.0\css\
      etc...

Because upgrade itself seems to be creating the *.tmp files, we tried updating Ant task to skip the *.tmp files when performing zip, using the procedure below. But that did not work either.

  1. Locate and backup the following file:

      copy C:\IBM\WebSphere\PortalServer\theme\wp.theme.themes\default80\config\includes\wp.theme.themes.default80.fp_cfg.xml c:\temp

  2. Edit the file ...

      notepad C:\IBM\WebSphere\PortalServer\theme\wp.theme.themes\default80\config\includes\wp.theme.themes.default80.fp_cfg.xml

    ...and change...

    <zip destfile="${work.dir}/themedavupdates/updateddavfiles.zip"
         basedir="${work.dir}/themedavupdates/davfiles">
        <include name="themes/Portal8.0/**/*"/>
    </zip>
    

    <zip destfile="${work.dir}/themedavupdates/updateddavfiles.zip"
         basedir="${work.dir}/themedavupdates/davfiles">
        <include name="themes/Portal8.0/**/*"/>
        <exclude name="**/*.tmp" />
    </zip>
    

  3. Save changes. Retry the upgrade.

Final outcome pending. I'll keep you posted.


Appendix

Caching Proxy supports WebDAV methods used by Microsoft Exchange Server, and user-defined (customized) methods. These methods are hard coded and managed by the Enable and Disable directives. Administrators can also use the corresponding method-mask defined in the PROTECT directive to authorize the use of these methods.

WebDAV for IBM WebSphere Portal provides a way to administer portal resources. Both administrators and users can use it. WebDAV for WebSphere Portal allows users to administer portal pages and content of static pages of a portal using standard operating system tools. This way client side administrators and users can browse, read, and write these resources using file explorers or editors.

Portal pages are represented as folders. They can contain subfolders representing child pages. Static pages are a special case: the content of a static page is located in a separate folder named staticcontent under the main folder on that page.

Users can work in the folders as usual, for example by performing drag-and-drop operations. The folders also hold property file containing metadata for portal resources, such as the title and description. Users can edit the property files to update portal resources. When the user saves the updated file, the updates are transferred and applied to the portal directly.

All the files shown in WebDAV are virtual files created from the page data in the portal database

WebSphere Portal contains the WebDAV service and enablement layer. Before using WebDAV for WebSphere Portal, users must set up their WebDAV client.

After setting up the WebDAV client, they can connect to WebDAV for WebSphere Portal and work with portal pages and content. To connect to WebDAV for WebSphere Portal, they enter the WebDAV entry URL.

The WebDAV entry point requires user authentication via HTTP basic authentication. SSL access is not supported at this time. To use WebDAV, users log in to the portal with their portal user ID. Users can access and work with portal pages according to their access permissions as set by Portal Access Control.

The WebDAV entry URL is as follows:

To connect to WebDAV to work with portal pages and static content, you enter the WebDAV entry URL.

The WebDAV entry URL is as follows:

Where:

server Host name of the portal server.
port Port number of WebSphere Portal.
vpcontext URL context of the target virtual portal, if the virtual portal URL context is configured to be encoded into the URL.
vphost Host name of the target virtual portal, if the virtual portal host name is configured to be encoded into the URL.
page_unique_name Unique name for the portal page.
page_object_id objectID for the portal page as it appears in the Manage Pages portlet.

Examples of entry URLs to all portal pages...

For virtual portals examples of entry URLs to all portal pages are as follows:


Related:

  1. Detailed system requirements
  2. WebDAV clients for accessing IBM WebSphere Portal
  3. Virtual portals


Parent: Administering