Show TOC

Background documentationAccessing the Web Resource Repository Locate this document in the navigation structure

 

The Web Resource Repository enables portal administrators to upload and manage web resources in the portal.

The resources in the repository are stored in the Portal Content Directory (PCD), and can be accessed using the PCD APIs.

The resources are also available for portal applications at runtime through the IResourceRepositoryService interface, contained in the com.sap.portal.resource.repository package.

The following examples illustrate how to access and use the resources with the help of this API.

Including Web Resources in Portal Responses

Resource files stored in the portal Web Resource Repository can be included in portal component responses, as follows:

Example Example

  1. //The repository path of the resource to include in the response:
    //can either be a full PCD path or relative to the resource repository root
    String resourcePath = "/my_resources/main.css";
    
    //Getting a reference to the resource repository service
    IResourceRepositoryService resourceRepository = 
    		(IResourceRepositoryService) PortalRuntime.getRuntimeResources()
    		.getService(IResourceRepositoryService.KEY);
    
    try {
    	//Getting an IResource object for the resource
    	IResource resource = resourceRepository
    		.getResource(resourcePath, IResource.CSS, false);
    
    	//Including the resource in the response
    	response.include(request, resource);
    
    } catch (WebResourceException e){
    
    	//Failure to load the requested resource, which can happen 
    	//if the resource doesn't exist or when the resource path is invalid
    
    	//Handle the exception...
    }
    
End of the code.
Accessing Resources Using URIs

A portal application can access resources that are stored in the Web Resource Repository using their web URIs, as follows:

Example Example

  1. //The repository path of the resource to include in the response:
    //can either be a full PCD path or relative to the resource repository root
    String resourcePath = "/my_resources/logo.png";
    
    //Getting a reference to the resource repository service
    IResourceRepositoryService resourceRepository = 
    		(IResourceRepositoryService) PortalRuntime.getRuntimeResources()
    		.getService(IResourceRepositoryService.KEY);
    
    //Getting the URI of the resource 
    URI resourceURI = resourceRepository.getResourceURI(resourcePath, false);
    
    //Using the resource URI
    response.getWriter().write("<image src=\"" + resourceURI + "\"/");
End of the code.

Note Note

You can get the resource's last modification timestamp appended to the created IResource object by passing true in the timestampRequired parameter. This is useful when you want resources to be updated on client browsers without having to clear the browser cache.

However, be aware that the last modification timestamp check may impact performance.

End of the note.

More Information