JSR 168 Container

Is the JSR 168 container available for download?

We have Application Server 10g installed. We also have applied patchset 9.0.4.1
We have tried to install WSRP and JSR 168 containers following steps detailed in OracleAS Portal Developer's Preview for Portlet Standards install guide.
We tried to install repository database on the 9.2.0.4 database (not the Metadata Repostiory Database as noted in install guide) we got error that OWA_VPD_CTX procedure is missing.
We continued installation ignoring this error and after we created DAD (described in the 'Wiring the Portal Repository to the Portal Middle Tier and Infrastructure' section of install guide) we could not successfully execute ptlasst.sh script. This is the error in the log file:
Error in getting the Portal version INSTALL_ERROR : Could not obtain Portal version : null
OPCA_ERROR : Portal installation throws exception :null
I guess because of this we cannot start DAD and later cannot register WSRP provide...

Similar Messages

  • Is the JSR-168 portlet-container supported for 10.1.3?

    And if so, what are the actions to be taken to install it on OC4J 10.1.3 standalone? I tried to install it earlier but ran into problems, see: WSRP Provider registration fails for OC4J10.1.3 container (stack), why?
    I want to use OC4J 10.1.3 as my JSR-168 container, because I can (try and) deploy Tapestry 4.0 portlets in this application server, that use Java annotations. I then want to consume these portlets over WSRP - part of Portal 10.1.4

    <bump count="2"/>

  • JSR-168 Navigation

    I would like to navigate from a Portal page containing JSR-168 portlets to another similar Portal page. I have accomplished this using the EDK <pt:openerLink ...> method but I was unable to append a parameter that was visible to the portlets on the target page.
    Do I need to create an Action URL with a parameter. From the processAction() method of the Portlet on the originating page I would then place the parameter into session scope and redirect from the originating Portal page to the new target portal page. (I know about the bug with session scope)?
    I read the "Introduction to JSR-168 Portlets" article, and noticed the custom tag
    ">here</a>.
    If I use this to how do I specify the new target Portal page?

    I'm not sure if my question was clear. I am not trying to 'call' another portlet. I am trying to navigate from one portal page (containing JSR-168 portlets) to another page. I know that I can do this about five different ways (<pt:opener , custom tag library within the Plumtree JSR-168 war, ...).
    I would like to know the most effective way to do this and pass a parameter.
    According to the 1.0.3 Release Notes for JSR-168 Container 1.0.3: "Render parameters are not stored between requests. This specifically fails the Sun TCK tests using WebLogic on Unix. (Issue #37783)." What is the correct life-span of a render parameter?
    Thank you! Any info is appreciated ;-)

  • Java Portlet (JSR 168) development with Portal

    Hello,
    We have been trying to dive back into Portal development lately. The release of 9.0.4 with support for standards-based portlets has convinced us to begin looking at 9iAS Portal as a practical portal product. We have a development environment setup with a workin 9.0.4 portal.
    Digging through the available docs on the portal studio site, I have come across a couple documents alluding to the installation of a portlet-container. Now, I have already downloaded the JSR 168 framework files. It seems that a good portion of this 'portlet container' consists of these files.
    The problem is that the documentation that is available is nothing more than a step by step set of instructions for setting up an OC4J instance with this 'portlet container', configuring an Oracle database for portlet customizations, and deploying a sample ear into the OC4J instance.
    This does nothing for me.
    What I want is documentation that indicates the requirements necessary to make a JSR-168 compliant portlet (even a 'hello world') exposed through portal with the least amount of effort, and with no references to proprietary tools. I would like to see instructions that are tailored towards a generic J2EE provider, not an OC4J one. I already have a very functional set of tools that should be able to accomodate a JSR-168 producer. We have had many problems with OC4J leading us to try to avoid it at all costs.
    Any ideas?
    Thanks!
    -Sean

    Hello
    I am probably not clear.
    In the OracleAS Portal architecture Java portlet are remote from the portal middle tier.
    In the non standard world (JPDK Portlet), the Portal Middlet tier use SOAP over HTTP to call the portlets.
    In the Standard world (JSR-168), the Portal Middle Tier will use WSRP (Web Service Remote Portlet) to call the portlets. When you use the Oracle JSR-168 container inside OC4J, these portlets are automatically accessible over remotely using WSRP.
    So, as you can see the Portal Middle Tier needs to support WSRP to be able to use JSR-168 portlet. And OracleAS 10g 904 does not currently support WSRP registration. It is why we have the "OracleAS Portal Verification Service for WSRP", to allow you to test your portlet.
    To be able to use JSR-168 (with WSRP) portlet on you internal Portal you'll have to install the OracleAS Portal Standard Developer Preview that will be available soon.
    Hope that clarify my previous statements.
    Regards
    Tugdual Grall

  • Control Height Of Region Containing JSR-168 Portlet

    We are in the process of converting some portlets from Oracle Reports to JSR-168. Our intitial portal page would contain the Oracle Reports portlets within the height of the region. The same output created by a JSR-168 portlet causes the region to grow vertically, which pushes the regions below it down thereby creating large gaps.
    The Oracle Reports portlet would have a scrollbar that allows the user to see all of the content hidden below the bottom of the region. No matter what css I apply, I cannot make the same thing happen with the JSR-168 portlet.
    Does anyone have any tips for constraining the vertical size of the regions so that they do not grow to accommodate all of the content but instead produce a scrollbar?

    Andre,
    When you drag a project folder over to a portal, workshop doesn't
    scan/detect the folder contents and create portlets accordingly. So, you
    are creating the wrong portlet type.
    In this case, you need to create the portlet via the file wizard. Just
    right-click on the directory where you want the portlet to live and
    select 'New->Portlet' to get the wizard. Then, select the portlet type:
    'Java Portlet'.
    -robert
    Andre Ranvik wrote:
    Is there anybody who has experience with deploying JSR 168 portlets on WLS 8.1SP2
    that have been "handcoded". The portlets I am trying to deploy are these:
    http://developers.sun.com/prodtech/portalserver/reference/techart/jsr168/#2
    I have tried to manually import the individual folders/files, modified the portlet.xml,
    and dropping the folder containing the jsp's onto a portal within Workshop. I
    respond "yes" to the question whether I want it to create a portlet. The problem
    is that it doesn't recognize this to be a JSR 168 portlet (or it doesn't support
    it??).
    I have also tried to deploy a portlet within a WAR file, but no such luck.
    Support for JSR 168 implies that one would expect support for deploying JSR 168
    portlets developed on other platforms.
    I am hoping for a step-by-step set of instructions on how this can be accomplished.
    Thanks a bunch!
    Andre Ranvik

  • (Why) do I need a JSR-168 Portlet container?

    Probably I'm missing something essential here, but whey do I need a JSR-168 portlet container? Suppose I'm using Tapestry 4 to write my JSR-168 compliant portlets, can they be consumed "directly" by a WSRP Portal server?

    Because:
    "A portlet container runs portlets and provides them with the required runtime"
    "environment. A portlet container contains portlets and manages their lifecycle. "
    "It also provides persistent storage for portlet preferences. A portlet container"
    "receives requests from the portal to execute requests on the portlets hosted by it."
    "A portlet container is not responsible for aggregating the content produced by the"
    "portlets. It is the responsibility of the portal to handle the aggregation."

  • Error while deploying a JSR 168 portlet developed in JDeveloper 10.1.3.2

    When deploying a JSR 168 portlet created using JDeveloper 10.1.3.2 (Web Center Suite edition), I get the error :
    "Shared library "oracle.wsrp" could not be found."
    Error Log:
    ---- Deployment started. ---- Sep 20, 2007 9:31:42 AM
    Target platform is Oracle Application Server 10g 10.1.3 (PolestarAppServerConnection).
    Wrote WAR file to C:\Projects\eAlliance\JSR168\ViewController\deploy\jsr168.war
    Wrote EAR file to C:\Projects\eAlliance\JSR168\ViewController\deploy\jsr168.ear
    Backing up generic archive file :/C:/Projects/eAlliance/JSR168/ViewController/deploy/jsr168_generic.ear
    Creating WSDLs for the WSRP Application
    WSDLs for the WSRP Application have been created
    Uploading file jsr168.ear ...
    Uploading file jsr168.ear ...
    Application Deployer for jsr168 STARTS.
    Copy the archive to /home/soahome/orasoa/j2ee/home/applications/jsr168.ear
    Initialize /home/soahome/orasoa/j2ee/home/applications/jsr168.ear begins...
    Unpacking jsr168.ear
    Done unpacking jsr168.ear
    Unpacking jsr168.war
    Done unpacking jsr168.war
    Initialize /home/soahome/orasoa/j2ee/home/applications/jsr168.ear ends...
    Starting application : jsr168
    Initializing ClassLoader(s)
    application : jsr168 is in failed state
    Operation failed with error:
    Shared library "oracle.wsrp" could not be found.
    Deployment failed
    Elapsed time for deployment: 39 seconds
    #### Deployment incomplete. #### Sep 20, 2007 9:32:21 AM
    Steps To recreate the error:
    1)Create a new Application in JDeveloper
    2)Click "New" in "ViewController" and click on WebTier->Portlets->Standards based(JSR 168) from the wizard.
    3)Go thru JSR 168 Portlet wizard steps 1 thru' 8 accepting all defaults.
    4)Click "New" in "ViewController" and click on General->Deployment Profiles->WAR File from the wizard.
    5)Enter a name and hit OK. Then in the "WAR Deployment Profile Properties" page, select "Specify J2EE Web Context Root" and enter the name similar to what is in the "Enterprise application name" text box in the same screen. Hit OK.
    6)Right click on the deploy file created under "Resources" and select "Deploy to AppServer" (I am deploying to a remote 10.1.4 Portal Server that has already been configured in my connections tab.
    7)Note the above noted error message in the Deployment Log tab.
    Can you give me any suggestions?
    Thanks,
    Bipin Raj

    Does the \j2ee\home\shared-lib directory contain a directory oracle.wsrp?
    Does the <OC4J_HOME>/j2ee/home/config/server.xml file contain a shared-lib declaration for oracle.wsrp?
    <shared-library name="oracle.wsrp" version="1.0">
    <code-source path="wsrp-container.jar"/>
    <code-source path="wsrp-types.jar"/>
    <code-source path="wsrp-jaxb.jar"/>
    <code-source path="jaxb-api.jar"/>
    <code-source path="jaxb-impl.jar"/>
    <code-source path="jaxb-libs.jar"/>
    <code-source path="namespace.jar"/>
    <code-source path="xsdlib.jar"/>
    <code-source path="relaxngDatatype.jar"/>
    <import-shared-library name="oracle.gdk"/>
    <import-shared-library name="oracle.xml"/>
    <import-shared-library name="oracle.jdbc"/>
    <import-shared-library name="oracle.cache"/>
    </shared-library>

  • We can use JSR-168 JPS portlet upload file,

    We can use JSR-168 JPS portlet upload file,
    here is the source for you referrence:
    upload file can use JSR168 portlet,
    1,CustomizablePortlet.java File
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ResourceBundle;
    import javax.portlet.*;
    import oracle.webdb.utils.SimpleStringBuffer;
    public class CustomizablePortlet extends GenericPortlet {
    private static final String TITLE_KEY = "title";
    protected static final String OK_ACTION = "ok_action";
    protected static final String APPLY_ACTION = "apply_action";
    protected static final PortletMode PREVIEW_MODE = new PortletMode("preview");
    protected static final PortletMode EDIT_DEFAULTS_MODE = new PortletMode("EDIT_DEFAULTS");
    protected static final PortletMode ABOUT_MODE = new PortletMode("ABOUT");
    public CustomizablePortlet() {
    public String getTitle(RenderRequest request) {
    return request.getPreferences().getValue("title", getPortletConfig().getResourceBundle(request.getLocale()).getString("javax.portlet.title"));
    public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.print("<FORM ACTION=\"");
    out.print(getEditFormSubmitURL(request, response));
    out.println("\" METHOD=\"POST\">");
    out.println("<TABLE BORDER=\"0\">");
    out.println("<TR>");
    out.println("<TD WIDTH=\"20%\">");
    out.println("<P CLASS=\"portlet-form-field\" ALIGN=\"RIGHT\">Title:");
    out.println("</TD>");
    out.println("<TD WIDTH=\"80%\">");
    out.print("<INPUT CLASS=\"portlet-form-input-field\" TYPE=\"TEXT\" NAME=\"");
    out.print("title");
    out.print("\" VALUE=\"");
    out.print(getTitle(request));
    out.println("\" SIZE=\"20\">");
    out.println("</TD>");
    out.println("</TR>");
    out.println("<TR>");
    out.println("<TD COLSPAN=\"2\" ALIGN=\"CENTER\">");
    out.print("<INPUT CLASS=\"portlet-form-button\" TYPE=\"SUBMIT\" NAME=\"");
    out.print("ok_action");
    out.print("\" VALUE=\"OK\">");
    out.print("<INPUT CLASS=\"portlet-form-button\" TYPE=\"SUBMIT\" NAME=\"");
    out.print("apply_action");
    out.print("\" VALUE=\"Apply\">");
    out.println("</TD>");
    out.println("</TR>");
    out.println("</TABLE>");
    out.println("</FORM>");
    protected String getEditFormSubmitURL(RenderRequest request, RenderResponse response) {
    return response.createActionURL().toString();
    public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.print("Help for <i><b>");
    out.print(getTitle(request));
    out.println("</b></i>.");
    public void doAbout(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    String aboutHTML = (new SimpleStringBuffer(30)).append("/about_").append(getPortletName()).append(".html").toString();
    PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(aboutHTML);
    response.setContentType("text/html");
    if(rd != null) {
    rd.include(request, response);
    } else {
    PrintWriter out = response.getWriter();
    out.print("<p class=\"portlet-font\">This is the about page for ");
    out.print(getTitle(request));
    out.print(".</p><p class=\"portlet-font\">");
    out.print("To customize the contents of this page, create a file named '");
    out.print(aboutHTML.substring(1));
    out.print("' in the Portlet web application's root directory containing HTML ");
    out.print("to appear here. ");
    out.print("Alternatively, override the <code>CustomizablePortlet</code> ");
    out.println("class's <code>doAbout()</code> method.</p>");
    public void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    WindowState state = request.getWindowState();
    if(!state.equals(WindowState.MINIMIZED)) {
    PortletMode mode = request.getPortletMode();
    if(mode.equals(PREVIEW_MODE))
    doView(request, response);
    else
    if(mode.equals(EDIT_DEFAULTS_MODE))
    doEdit(request, response);
    else
    if(mode.equals(ABOUT_MODE))
    doAbout(request, response);
    else
    super.doDispatch(request, response);
    } else {
    super.doDispatch(request, response);
    public void processAction(ActionRequest request, ActionResponse actionResponse) throws PortletException, IOException {
    String newTitle = request.getParameter("title");
    PortletPreferences prefs = request.getPreferences();
    prefs.setValue("title", newTitle);
    prefs.store();
    if(request.getParameter("ok_action") != null) {
    actionResponse.setPortletMode(PortletMode.VIEW);
    actionResponse.setWindowState(WindowState.NORMAL);
    2,FileUploadPortlet.java file
    import java.io.*;
    import javax.activation.DataHandler;
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeBodyPart;
    import javax.portlet.*;
    import oracle.portal.portlet.sample.CustomizablePortlet;
    public class FileUploadPortlet extends CustomizablePortlet
    private static final String FILE_PARAM = "file";
    private static final String SUBMIT_PARAM = "submit";
    private static final String DEFAULT_CHARSET = "ISO-8859-1";
    private static final String uploadRoot = "";
    public FileUploadPortlet()
    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.print("<form action=\"");
    out.print(response.createActionURL().toString());
    out.println("\" enctype=\"multipart/form-data\" method=\"post\">");
    out.println("<center><table border=\"0\">");
    out.println("<tr>");
    out.print("<td class=\"portlet-form-field\" align=\"right\">");
    out.print("Please browse to an HTML file:");
    out.println("</td>");
    out.print("<td>");
    out.print("<input class=\"portlet-form-input-field\" type=\"file\" name=\"");
    out.print("file");
    out.print("\">");
    out.println("</td>");
    out.println("</tr>");
    out.println("<tr>");
    out.println("<td colspan=\"2\" align=\"center\">");
    out.print("<input type=\"submit\" class=\"portlet-form-button\" name=\"");
    out.print("submit");
    out.print("\" value=\"Display\">");
    out.println("</td>");
    out.println("</tr>");
    out.println("</table>");
    out.println("</form>");
    String lastFile = request.getPreferences().getValue("file", null);
    if(lastFile != null) {
    out.println("<hr width=\"100%\"><br>");
    out.print(lastFile);
    public void processAction(ActionRequest request, ActionResponse actionResponse) throws PortletException, IOException {
    FormDataParser parsedRequest = new FormDataParser(request);
    MimeBodyPart mbp = parsedRequest.getMimeBodyPart("file");
    if(mbp == null)
    super.processAction(request, actionResponse);
    else
    try {
    String fileName= mbp.getFileName();
    int splash = fileName.lastIndexOf("\\");
    if(splash != -1)
    fileName = fileName.substring(splash +1, fileName.length()).trim();
    String contentType = mbp.getContentType();
    String charSet = getCharsetFromContentType(contentType);
    int sepIndex = contentType.indexOf(';');
    if(sepIndex != -1)
    contentType = contentType.substring(0, sepIndex).trim();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    mbp.getDataHandler().writeTo(bos);
    bos.close();
    String content = new String(bos.toByteArray(), charSet);
    FileOutputStream fos = new FileOutputStream(fileName);
    fos.write(bos.toByteArray());
    fos.close();
    PortletPreferences prefs = request.getPreferences();
    prefs.setValue("file", fileName + "upload ok");
    prefs.store();
    catch(MessagingException me) {
    throw new PortletException(me);
    public static String getCharsetFromContentType(String contentType) {
    int lastPos;
    if((lastPos = contentType.indexOf(';')) == -1)
    return "ISO-8859-1";
    lastPos++;
    String lowerContentType = contentType.toLowerCase();
    int nextPos;
    do {
    nextPos = lowerContentType.indexOf(';', lastPos);
    String param;
    if(nextPos == -1)
    param = lowerContentType.substring(lastPos).trim();
    else
    param = lowerContentType.substring(lastPos, nextPos).trim();
    if(param.startsWith("charset=") && param.length() > 8)
    return param.substring(8);
    lastPos = nextPos + 1;
    } while(nextPos != -1);
    return "ISO-8859-1";
    3,FormDataParser.java file
    import java.io.*;
    import java.util.*;
    import javax.activation.DataSource;
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMultipart;
    import javax.portlet.ActionRequest;
    import javax.portlet.PortletException;
    public class FormDataParser {
    private static final String MULTIPART_PREFIX = "multipart/";
    private static final String MULTIPART_FORM_DATA = "multipart/form-data";
    private static final String PLAIN_TEXT = "text/plain";
    private ActionRequest mWrappedRequest;
    private Map mParams;
    private Map mBodyParts;
    private boolean mIsInitialized;
    private boolean mHasMultipart;
    public FormDataParser(ActionRequest request) {
    mWrappedRequest = request;
    public String getParameter(String name) throws PortletException {
    String value = mWrappedRequest.getParameter(name);
    if(value != null)
    return value;
    initParameters();
    if(!mHasMultipart)
    return null;
    List paramList = (List)mParams.get(name);
    if(paramList != null)
    return (String)paramList.get(0);
    else
    return null;
    public String[] getParameterValues(String name) throws PortletException {
    String values[] = mWrappedRequest.getParameterValues(name);
    if(!mHasMultipart)
    return values;
    initParameters();
    List valueList = (List)mParams.get(name);
    if(valueList == null)
    return values;
    int size = valueList.size();
    if(values != null) {
    List newValueList = new ArrayList(values.length + size);
    newValueList.addAll(Arrays.asList(values));
    newValueList.addAll(valueList);
    valueList = newValueList;
    values = new String[size];
    valueList.toArray(values);
    return values;
    public MimeBodyPart getMimeBodyPart(String name) throws PortletException {
    initParameters();
    if(!mHasMultipart) {
    return null;
    } else {
    List parts = (List)mBodyParts.get(name);
    return parts != null ? (MimeBodyPart)parts.get(0) : null;
    public MimeBodyPart[] getMimeBodyParts(String name) throws PortletException {
    initParameters();
    if(!mHasMultipart)
    return null;
    List parts = (List)mBodyParts.get(name);
    if(parts == null) {
    return null;
    } else {
    MimeBodyPart mimeBodyParts[] = new MimeBodyPart[parts.size()];
    parts.toArray(mimeBodyParts);
    return mimeBodyParts;
    private void initParameters() throws PortletException {
    if(mIsInitialized)
    return;
    String contentType = mWrappedRequest.getContentType();
    if(contentType == null) {
    mIsInitialized = true;
    return;
    int sepIndex = contentType.indexOf(';');
    if(sepIndex != -1)
    contentType = contentType.substring(0, sepIndex).trim();
    if(contentType.equalsIgnoreCase("multipart/form-data")) {
    mParams = new HashMap(20);
    mBodyParts = new HashMap(20);
    DataSource ds = new DataSource() {
    public InputStream getInputStream() throws IOException {
    return mWrappedRequest.getPortletInputStream();
    public OutputStream getOutputStream() throws IOException {
    throw new IOException("OutputStream not available");
    public String getContentType() {
    return mWrappedRequest.getContentType();
    public String getName() {
    return getClass().getName();
    try {
    MimeMultipart multipartMessage = new MimeMultipart(ds);
    parseMultiPart(multipartMessage, null);
    catch(MessagingException me) {
    throw new PortletException(me);
    catch(IOException ioe) {
    throw new PortletException(ioe);
    mHasMultipart = true;
    mIsInitialized = true;
    private void parseMultiPart(MimeMultipart multipartMessage, String parentFieldName) throws MessagingException, IOException {
    int partCount = multipartMessage.getCount();
    for(int i = 0; i < partCount; i++) {
    javax.mail.BodyPart part = multipartMessage.getBodyPart(i);
    if(part instanceof MimeBodyPart) {
    MimeBodyPart mimePart = (MimeBodyPart)part;
    String disps[] = mimePart.getHeader("Content-Disposition");
    if(disps != null && disps.length != 0) {
    String disp = disps[0];
    String lcDisp = disp.toLowerCase();
    int nameStart;
    int nameEnd;
    if((nameStart = lcDisp.indexOf("name=\"")) != -1 && (nameEnd = lcDisp.indexOf("\"", nameStart + 6)) != -1)
    parentFieldName = disp.substring(nameStart + 6, nameEnd);
    if(parentFieldName != null)
    if(mimePart.getContentType().toLowerCase().startsWith("multipart/")) {
    Object content = mimePart.getContent();
    if(content instanceof MimeMultipart)
    parseMultiPart((MimeMultipart)content, parentFieldName);
    } else
    if((nameStart = lcDisp.indexOf("filename=\"")) != -1 && (nameEnd = lcDisp.indexOf("\"", nameStart + 10)) != -1) {
    List values = (List)mBodyParts.get(parentFieldName);
    if(values == null) {
    values = new ArrayList(1);
    mBodyParts.put(parentFieldName, values);
    values.add(mimePart);
    } else
    if(mimePart.getContentType().toLowerCase().startsWith("text/plain")) {
    Object content = mimePart.getContent();
    if(content instanceof String) {
    List values = (List)mParams.get(parentFieldName);
    if(values == null) {
    values = new ArrayList(1);
    mParams.put(parentFieldName, values);
    values.add((String)content);
    4.web.xml file
    <?xml version = '1.0' encoding = 'ISO-8859-1'?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <display-name>hanhuiwen OracleSamplePortlets</display-name>
    <description>hanhuiwen Oracle Sample Portlet Application</description>
    <servlet>
    <servlet-name>portletdeploy</servlet-name>
    <servlet-class>oracle.webdb.wsrp.server.deploy.PortletDeployServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>portletjaxrpc</servlet-name>
    <servlet-class>com.sun.xml.rpc.server.http.JAXRPCServlet</servlet-class>
    <init-param>
    <param-name>configuration.file</param-name>
    <param-value>/WEB-INF/WSRPService_Config.properties</param-value>
    </init-param>
    </servlet>
    <servlet>
    <servlet-name>portletresource</servlet-name>
    <servlet-class>oracle.webdb.wsrp.server.ResourceServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>ChartServlet</servlet-name>
    <display-name>Chart Servlet</display-name>
    <description>Demo image-generating servlet</description>
    <servlet-class>oracle.portal.portlet.sample.chart.ChartServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>uix</servlet-name>
    <servlet-class>oracle.cabo.servlet.UIXServlet</servlet-class>
    <init-param>
    <param-name>oracle.cabo.servlet.pageBroker</param-name>
    <param-value>oracle.cabo.servlet.xml.UIXPageBroker</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>ChartServlet</servlet-name>
    <url-pattern>/chart*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>portletjaxrpc</servlet-name>
    <url-pattern>/portlets*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>portletresource</servlet-name>
    <url-pattern>/portletresource*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>uix</servlet-name>
    <url-pattern>*.uix</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>uix</servlet-name>
    <url-pattern>/uix/*</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>60</session-timeout>
    </session-config>
    <welcome-file-list>
    <welcome-file>index.uix</welcome-file>
    </welcome-file-list>
    <!--
    LogLevel controls the amount of information logged. There are 7 log levels:
    0 - logging disabled
    1 - configuration
    2 - severe error
    3 - warning
    4 - throwing exception
    5 - performance
    6 - information
    7 - debug
    The oracle.portal.log.Logger interface defines methods that map to these 7
    log levels. However, there are also 2 methods that do not map to log
    levels. These methods are included for backwards compatibility and data
    logged using these methods will always be logged regardless of the log level.
    -->
    <env-entry>
    <env-entry-name>oracle/portal/log/logLevel</env-entry-name>
    <env-entry-type>java.lang.Integer</env-entry-type>
    <env-entry-value>7</env-entry-value>
    </env-entry>
    </web-app>
    5.portlet.xml
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
    <portlet>
    <description xml:lang="en">A portlet that demonstrates the file upload features of the Java Portlet Specification.</description>
    <portlet-name>FileUpload</portlet-name>
    <portlet-class>FileUploadPortlet</portlet-class>
    <expiration-cache>0</expiration-cache>
    <supports>
    <mime-type>text/html</mime-type>
    <portlet-mode>help</portlet-mode>
    <portlet-mode>about</portlet-mode>
    <portlet-mode>edit_defaults</portlet-mode>
    </supports>
    <supported-locale>en</supported-locale>
    <portlet-info>
    <title>File Upload Portlet</title>
    <short-title>File Upload</short-title>
    <keywords>File,Upload, Portlet</keywords>
    </portlet-info>
    </portlet>
    <custom-portlet-mode>
    <description xml:lang="en">This mode should be used by the portlet to display information on the portlet's purpose, origin, version, etc.</description>
    <portlet-mode>about</portlet-mode>
    </custom-portlet-mode>
    <custom-portlet-mode>
    <description xml:lang="en">This mode signifies that the portlet should render a screen to set the default values for the modifiable preferences that are typically changed in the EDIT screen. Calling this mode requires that the user must have administrator rights.</description>
    <portlet-mode>edit_defaults</portlet-mode>
    </custom-portlet-mode>
    <custom-portlet-mode>
    <description xml:lang="en">This mode should be used by the portlet to render output without the need of having back-end connections or user specific data available.</description>
    <portlet-mode>preview</portlet-mode>
    </custom-portlet-mode>
    <user-attribute>
    <name>user.name.given</name>
    </user-attribute>
    <user-attribute>
    <name>user.name.family</name>
    </user-attribute>
    <user-attribute>
    <name>user.name.middle</name>
    </user-attribute>
    <user-attribute>
    <name>user.name.nickname</name>
    </user-attribute>
    <user-attribute>
    <name>user.bdate</name>
    </user-attribute>
    <user-attribute>
    <name>user.business-info.online.email</name>
    </user-attribute>
    </portlet-app>

    Hello i had exactly the same error, but not with file upload.
    I'm sure you have in your application lib directory to jars which aren't compatible to each other.
    And the problem occured between my myfaces and tomahawk jars .
    See this page:
    http://wiki.apache.org/myfaces/CompatibilityMatrix
    It tells you which myfaces and tomahawk jars you can use together.
    Hope it can help.
    bye

  • Upload file in Portlet (JSR-168) with library commons-FileUpdate

    hi All,
    I have write portlet (JSR 168) "UpToFile.java" for upload a file with the Commons-FileUpload 1.1.1 but when deploy in the Oracle Portal the file is not upload, because the variable isMultipart is false:
    UPToFile.ProcessAction(...) :
    boolean isMultipart = PortletFileUpload.isMultipartContent(request);
    (Utility method that determines whether the request contains multipart content.)
    view.jsp:
    <FORM ACTION="<portlet:actionURL/>" METHOD="POST" enctype="multipart/form-data" >
    upload file: <INPUT TYPE="file" NAME="file-upload" SIZE="20">
    <INPUT TYPE="SUBMIT" value="upload" >
    </FORM>
    I do not understand because "isMultipart" is "false".
    Tanks.
    EDIT: sorry, now work. :)
    Message was edited by:
    dartan
    null

    hi All,
    I have write portlet (JSR 168) "UpToFile.java" for upload a file with the Commons-FileUpload 1.1.1 but when deploy in the Oracle Portal the file is not upload, because the variable isMultipart is false:
    UPToFile.ProcessAction(...) :
    boolean isMultipart = PortletFileUpload.isMultipartContent(request);
    (Utility method that determines whether the request contains multipart content.)
    view.jsp:
    <FORM ACTION="<portlet:actionURL/>" METHOD="POST" enctype="multipart/form-data" >
    upload file: <INPUT TYPE="file" NAME="file-upload" SIZE="20">
    <INPUT TYPE="SUBMIT" value="upload" >
    </FORM>
    I do not understand because "isMultipart" is "false".
    Tanks.
    EDIT: sorry, now work. :)
    Message was edited by:
    dartan
    null

  • JSR-168 and Request Parameters

    Hi!
    I'm creating a portlet application; right now it only has one portlet in it. The landing page for my portlet (view mode) has the following form code:
        <FORM action="<portlet:renderURL/>">
            I'm thinking of a number between 1 and 10.<BR><BR>
            <I>What is it?</I>
            <INPUT name="<portlet:namespace/>number" type="text" size="10" />
            <INPUT name="submit" type="submit" value="Guess!!" />
        </FORM>When I submit this form, I see the parameter in my browser's URL window prefixed with the portlet namespace:
       http://host:port/portal/page/portal/portalpage?__ns36_5643_36_1_1_number=3&submit=Guess%21%21Here is how I'm trying to get the "number" parameter in the Java class associated with this jsp:
                String number = (response.getNamespace()+"number");I have also tried with
                String number = response.getParameter("number");In both cases the variable number gets assigned the null value.
    How can I capture parameters sent by a form on a JSP page on the portlet's Java class?
    I am developing this portlet application with JDeveloper 10.1.3.3.0.4157 and deploying to Oracle Application Server 10.1.2.0.2 with a wsrp-compliant container. Portlet is consumed in Oracle Portal 10.1.4.
    Thank you for your response.

    I'm sorry; I typed it wrong:
    It's
    String number = request.getParameter("number");However, if you're referring to the namespace, then the way I have on my book (Portlet Programming, Effectively Using the JSR-168 Standard, by Cameron McKenzie) is really
    (response.getNamespace()+"number")

  • JSR 168 portlet based web service throwing an error ......

    Hi All,
    I am quite new to this whole new fusion concept.We are trying to build some web center based applications.
    I have downloaded jdev11g(Studio Edition Version 11.1.1.0.0)technolgy preview version and started following the pdf documentation that comes with it to build the web center based applications.
    As given in the docummentation i have built a JSR 168 Java Portlet through the wizard in Jdeveloper.
    2:Created a java bean to store the portlet information,added some business logic to the portlet.
    3:Deployed the portlet application in the preconfigured OC4J that is shipped with the jdeveloper.
    4:When i test the webservice from within the http analyzer in jdeveloper by invoking the web service i get a response like this:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault>
    <faultcode>env:Server</faultcode>
    <faultstring>no serializer is registered for (interface javax.xml.soap.SOAPElement, {urn:oasis:names:tc:wsrp:v2:types}getPortletPropertyDescriptionResponse)</faultstring><faultactor/></env:Fault></env:Body></env:Envelope>
    5:If i then try to register the WSRP Portlet producer to my deployed application i get the the 500 status error which states that it cannot register the portlet as it could not connect to the host because the application is not deployed correctly or the producer container is not running or that the host is beyond a firewall.
    It cannot be that it cannot connect to the host because of firewall ,the pre configured oc4j is also running which leaves the option of the application not being deployed correctly in the server.!!
    While i try to register the portlet the preconfigured oc4j log displays the error in point 4:
    Any help would be great as i have no clue what went wrong in the deployment because everything is so wizard driven...
    Looking for some urgent help...as we are in the process of building prototypes for the customer!!!

    Hi user,
    I think it best not to use the 11g preview versions anymore. To build WebCenter applications, you should use the last 10g version, which is 10.1.3.4. 11g Production has superseded the preview versions, and in that there is no webcenter support, as everything is now migrated towards weblogic.
    So please try to follow your tutorial in 10g.
    Regards,
    Jeroen van Veldhuizen
    Redora

  • JSR 168 and Web Services For Remote Portlets

    Hi,
       I have recently joined SAP.In my previous work experience I have worked extensively on the Sun Java Portal Server and was curious about the following
    1.Does SAP Enterprise Portal Server support JSR 168 compliant Portlets.
    2.If yes the Question that naturally follows is:Can portlets(view Components)in a SAP Portal be remote enabled?In other words does SAP portal support WSRP standards.
    3.If the SAP Enterprise Portal has implemented  the JSR 168 specifications then how does the architecture seperate out the Portal engine from the Portlet Container.
    In other words where does the actual wrapping from a HTTPServletRequest to a Portlet Request happen?
    4.The JSR 168 specifications restricts the use of IFrames and many HTML tags in the fragments that are returned by the portlets running in the Portlet Container.Is this taken care of in SAP Enterprise Portal?
    5.Can WebDynpro applications be embedded in a JSR 168 compliant portlet?
    6.How is parity maintaned between portlet session HTTP session and the Applications session?
    7.Does SAP Portal support deployment through a par model?
    Thanks and Regards
    Sujeet Mishra
    SAP Labs India Ltd
    [email protected]

    > 1.Does SAP Enterprise Portal Server support JSR 168
    > compliant Portlets.
    I'd like to know the answer to this question as well. I wrote an email but didn't receive any response. So i guess JSR 168 isn't supported yet?

  • JSR 168 portlets packaging question

    Hello,
    I have a bunch of Java (JSR 168, using Spring MVC) portlets (PortletOne, PortletTwo...PortletN) that I created as individual Portal Web projects and are contained in a Portal EAR project. This portal EAR is my deployment unit and also consists of another Portal Web project (Assembly.war) that holds a app.portal file where I plan to assemble all these Java portlets and use it to create a desktop. The reason for having all the individual portlets in web projects of their own is to be able to export them as a unit and use it elsewhere either as a shared library or package it within another EAR file as the need arises.
    my application.xml looks somewhat like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <application id="Application_ID" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
         <display-name>MyEar</display-name>
         <module id="WebModule_1">
              <web>
                   <web-uri>Assemby.war</web-uri>
                   <context-root>appname</context-root>
              </web>
         </module>
         <module id="WebModule_2">
              <web>
                   <web-uri>PortletOne.war</web-uri>
                   <context-root>PortletOne</context-root>
              </web>
         </module>
         <module id="WebModule_3">
              <web>
                   <web-uri>PortletTwo.war</web-uri>
                   <context-root>PortletTwo</context-root>
              </web>
         </module>
    </application>But since all these WAR files are at the same level I cannot reference the context definitions and the controllers for the portlets defined in each of these portlet WAR files (PortletOne, PortletTwo,...) from the common web project that holds the app.portal file in Assembly.war. I tried to define a custom classloader structure in weblogic-application.xml and put the assembly war file at a lower level but the app even fails to deploy with IllegalAccessError as soon as a context for each of the war files is registered by the hot deploy process. Moreover, when I deploy the EAR file, the portlets defined in each of the WAR files do not appear in the Resources library when viewed from the Portal Administration console.
    Any suggestions how to assemble these individual portlets into a common web project, while still keeping them packaged within the same EAR file? Alternate approaches are welcome too.
    I have already considered deploying these portlet WAR files as Weblogic J2EE shared libraries. But with this approach, the overall application response time is very slow in spite of exhausting all tuning options and also cannot pre-compile JSPs in the shared libraries.
    Is importing the JSR-168 portlets using the import utility as WSRP portlets a viable option? Will I be able to share session variables across portlets, fire and handle events and be able to pre-compile the JSP in idividual portlets?
    Edited by: shyam6190 on Aug 13, 2009 1:25 PM

    Hello,
    Perhaps the multiple nested classloaders involved with the shared libraries approach is slowing it down- if that is the case, it would be hard to fix.
    Using WSRP should work for you; there is a bit more complexity but if you have relatively simple portlets, use the correct JSR168 tags and methods (or the Spring bridge does), it shouldn't be too hard to get to work. The IDE may be able to help you with that; you can create a new portlet of type "remote portlet" in your aggregated webapp, and a wizard will walk you through the steps. If you use local proxy mode, the portlet's individual WSDL URL will be the URL to each portlet's webapp on localhost.
    The WSRP configuration can also be done dynamically in the Portal Admin Tools, and even using a specialized JSR168 import tool, but both of these options would only create database instances of portals and portlets in your aggregating webapp. This would be fine if your aggregated EAR never needs to move to a different deployment environment, but if you require portability of the EAR to another environment it complicates packaging, as database information is also required. If you happen to be using WLP version 10.3, I believe there is a bug which prevents the specialized JSR168 import tool from working, but the tool is documented here:
    http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/prodOps/deployment.html#wp1047337
    Since all the WSDL URLs will point only to the localhost, when you package the aggregated WAR file it should deploy properly to any servers. Information about the local proxy mode, which should improve performance for your configuration, is described here:
    http://download.oracle.com/docs/cd/E13155_01/wlp/docs103/federation/Chap-Best_Practices.html#wp1010714
    Hope this helps!
    Kevin

  • After JSR-168 processAction there is no re-Render?

    In the Edit/Config mode of my JSR-168 portlet I want to have a rather complex form. It's a table that the user would be able to edit, add, and remove rows from. I have a form that submits to the actionURL, and sucessfully calls the processAction method of the portlet. Each action like add, remove, or edit submits the form to this method. I want to save the change and refresh the screen for further changes.
    The problem is that the screen won't refresh after the action call. The edit/config window just closes on its own. Is there a way to modify this behavior so that the screen refreshes instead and only closes when I tell it the user is done?
    Thanks,
    Tim

    I have since re-written the code based on the fact that it doesn't work the way I expected. I basically have:
    public class ABSSalesSearchBase extends GenericPortlet {
    protected void doDispatch(RenderRequest request,
    RenderResponse response) throws PortletException,
    IOException {
    System.out.println("ABSSalesSearchBase doDispatch 1");
    processActionWorkaround(request, response);
    protected void processActionWorkaround(RenderRequest request,
    RenderResponse response) throws PortletException,
    IOException {
    System.out.println("ABSSalesSearchBase processActionWorkaround 1");
    public void processAction(ActionRequest request, ActionResponse response)
    throws PortletException, IOException {
    System.out.println("ABSSalesSearchBase processAction - Done");
    I put the call to processActionWorkaround() inside doDispatch so that I could process the action and then continue to render the portlet.
    After a normal call to processAction(), the doDispatch() is not called, and the portal closes the popup preferences window. So I'm now only using processAction when the user clicks on a Done button.
    It would make more sense for the portal to keep the preferences window open until I changed the portlet mode back from Edit to View, signaling that the edits were done, but it seems the container assumes we are done after any processAction.

  • Apache Struts Bridge for JSR-168 Portlet

    Hello,
    I am trying to call a struts application from a JSR-168 Portlet.
    But I am not getting this class "oracle.webdb.wsrp.server.PortletApplicationImpl"
    Which is required for this.
    Can anyone, tell me, where to find this class.
    Thanks
    Sam
    Message was edited by:
    samplified

    I was able to find that class by downloading the Oracle Portlet Container 10.1.2.0.2 and following the instructions for extracting it into my OC4J. When you do that it will give you a file called ${OC4J_HOME}/shared-lib/oracle.wsrp/1.0/wsrp-container.jar. That jar file contains the class you need.
    Oracle Portlet Container 10.1.2.0.2: http://download.oracle.com/otndocs/tech/ias/portal/files/portlet-container.zip
    PDK Page: http://www.oracle.com/technology/products/ias/portal/pdk.html

Maybe you are looking for

  • Can't enter address in Safari

    I am running Safari 4.1.1 on OSX 10.4.11. When I try to type in a webpage address, Safari freezes up and I need to force quit it. I just downloaded a new 10.4.11 to try to upgrade it, but it still does it. What's up?

  • Inheretence is driving me crazy, help a n00bie out.

    I am driven insane by inheratance. In class we are using Blue J. The book we have does not have a good example. If anyone knows how inheretance is supposed to work and how to work multi inheretance with print statements please help me out. If I were

  • Imovie Format converisionn

    I need to convert the standard MEPG4 movie format into a WMV or MOV format to upload to a web site - how do I do this within the I movie platform?

  • How can I increasemy font size on firefox ?

    I want to increase letters or fonts on firefox website. How can I zoom in and out ? Also, I want the upper tab all the time . Right now it is comoing and going when click on top

  • Issue changing font in CC

    I'm not sure why, but Photoshop CC keeps automatically changing my font back to it's previous font after I attempt to change it to a new one. Current font in document: Source Sans Pro Attempting to change font to: Open Sans So far the only way I've b