Portlet.xml
Is there a way to update the portlet.xml dynamically? That is, add an instance of the portlet using <portlet> tag at runtime to the portlet.xml. Does the portlet container need to be bounced back so that the updates are picked up?
Got to know that that this is very much a portal-dependent functionality. Does Weblogic support this functionality?
Thanks,
Parul
We do not provide any APIs to modify the portlet.xml file. However, if
you were to modify it, changes should automatically be picked up.
Nate
harsh uchariya wrote:
I had a similar question. is there a way if i want to just deploy/update a changed/updated "portlet.xml" for any "one" portlet application, i can do this w/o restarting weblogic.
i am using wls 8.1 and portlets follow jsr168 standards.
thanks in advance.
Similar Messages
-
How to merge portlet.xml file from shared libraries into an EAR application
Hi all
I need some help
I have some applications as shared-libs referenced by weblogic.xml into a EAR application.
To see all portlets from that shared-libs, I'm creating a portlet.xml into the EAR application with all portlets from all shared libs. But is terrible for me. I would like to have it merged automatically without having to create it in the EAR application. Is that possible?
Regards
BrunoIn the documentation, I saw this text:
Overriding Shared J2EE Library Settings in the web.xml File
At runtime, the web.xml files in all the shared J2EE libraries are merged, along with the web.xml
file in your portal web project. The content of your WEB-INF/web.xml file overrides anything in
the shared J2EE libraries, so if you want to change particular settings, you can do it there.
There are many other files for which file contents are merged; these can be overridden in the same
way. These files include not only WEB-INF/web.xml but also WEB-INF/weblogic.xml and any
files mentioned in weblogic-extension.xml from either the users' application or the shared
libraries.
It seems to be possible to customize the weblogic-extension.xml. But I haven't seen how to do that
What do you think about it?
Regards
Bruno -
Java Portlets not able to read portlet.xml
while invoking java portlets context fails to read portlet.xml , any idea
I am having weblogic 8.1 sp2Is the file valid (per the schema)? What kind of exception/error are you
getting?
Subbu
said the following on 02/25/2004 12:47 PM:
while invoking java portlets context fails to read portlet.xml , any idea
I am having weblogic 8.1 sp2 -
Problem in Configuring web.xml or portlet.xml
Hi all,
We are developing an application on the VAP 7 using Portlets.
Can some one tell me, how to trigger a servlet from the Portlet? Rather how do i configure the web.xml or the Portlet.xml to make it identify the servlet that has to be called on load of the jsp.
I have tried this the regular jsp and xml way (i.e. without using the Portlets and calling it from the JSP)
I have the web.xml where i have the mapping for the single jsp ( this has the call servlet within the SRC attribute of the IMG tag. ) , also with the mapping details for the servlet to be called and this way it works fine there.
How do i do the same for Portlets.?are you very new to servlets..
ok then.
<servlet>
<servlet-name>bittu1</servlet-name>
<servlet-class>Library1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>bittu1</servlet-name>
<url-pattern>/lop1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>bittu2</servlet-name>
<servlet-class>Library2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>bittu2</servlet-name>
<url-pattern>/lop2</url-pattern>
</servlet-mapping> i think this will help you. -
No portlet found in portlet.xml
We have deployed 2 war files that use the WCI jsr-168 container to a WebLogic 10.3 remote portlet server, but can not get them both to work at the same time. The error message that is displayed is just:
"An error has occured
No portlet found in portlet.xml for xportletname"
If I Stop and Start the deployment of the one that displays this error, it starts working again, but then the other one stops working (showing this error).
It seems that the jsr-168 container may be interfering with other instances of itself running on the same server.
Any help is appreciated.hello
your post is two years old now, so i am poping it pretty late, but did you get answers to your questions. i believe, we need to configure the oracle workflow engine itself
regards
ammar Sajdi
Oracle consultant
www.e-ammar.com
REALSOFT - PALCO
Amman -
resource-bundle tag of portlet.xml
Hi.
I'd like to use resource bundle. Therefore I add following tags inside <portlet> tag of portlet.xml and create 'testprofile.properties' file.
<resource-bundle>testprofile</resource-bundle>
But when I start tomcat, the error occured like following.
2004-08-05 12:01:45,437 ERROR [main]
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
at java.util.Properties.load(Properties.java:189)
at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:96)
at com.plumtree.portlet.util.PortletInfo.addPropertyBundles(PortletInfo.java:425)
at com.plumtree.portlet.servlet.PortletServlet.digestPortletXml(PortletServlet.java:527)
at com.plumtree.portlet.servlet.PortletServlet.initDigester(PortletServlet.java:651)
at com.plumtree.portlet.servlet.PortletServlet.init(PortletServlet.java:60)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex ...
So I modified portlet.xml like following and try to start tomcat again.
<resource-bundle>testprofile.properties</resource-bundle>
Tomcat can be started successfully.
But when I display the portlet, error occured.
java.util.MissingResourceException: Can't find resource for bundle com.plumtree.portlet.util.PortletResourceBundle, key LogLevel at java.util.ResourceBundle.getObject(ResourceBundle.java:314) at java.util.ResourceBundle.getString(ResourceBundle.java:274) at portlet.TWNewMailPortlet.init(TWNewMailPortlet.java:45) at com.plumtree.portlet.servlet.BaseServlet.init(BaseServlet.java:522) at com.plumtree.portlet.servlet.PortletServlet.service(PortletServlet.java:136)
The properties file 'testprofile.properties' is not loaded successfully, maybe.
Do you know how to specify or use ResouceBundle in using Plumtree JSR168?
The tips of source code is following
In Portlet class which extends GenericPortlet
public void init(PortletConfig config) throws PortletException { super.init(config); PortletLogger.init("Test", getPortletContext()); ResourceBundle rb = getResourceBundle(Locale.getDefault()); for (Enumeration e = rb.getKeys(); e.hasMoreElements(); ) { String str = (String)e.nextElement(); System.out.println(str); } String level = rb.getString("LogLevel"); PortletLogger.setLevel(level); }Are you naming your resource bundles something like:
1. messages_en.properties (for English)
2. messages_de.properties (for German)
and so on.
Also, do you include these properties files in your final deployment package, because if they're not there then the messages won't be displayed. -
Update portlet.xml(for JSR 168 portlets) at runtime
Is there a way to update the portlet.xml dynamically? That is, add an instance of the portlet using <portlet> tag at runtime to the portlet.xml. Does the portlet container need to be bounced back so that the updates are picked up?
Got to know that that this is very much a portal-dependent functionality. Does Oracle Portal support this functionality?
Thanks,
ParulHi Parul,
I am not sure that you will be able to add portlets dynamically .. since, even if you do, you will still need to refresh the provider on the portal.
thanks,
Harsha
p.s.: What is your use-case for such an requirement? -
Weblogic-portlet.xml documentation
Can someone tell me where to find documentation on the weblogic-portlet.xml deployment descriptor elements?
Thanks
TimHi Tim,
You can find moreinformation regarding portal at
http://e-docs.bea.com/wlp/docs81/index.html
Regards,
Prasanna Yalam -
Merging two portlet.xml
Hi,
I have a portal application which has a portlet.xml. For this application we added weblogic shared library which includes another portlet.xml. There was a conflict due to two portlet.xml files. I have manually copied portlet entries to form one portlet.xml. This works fine. Is there any other solution to merge (not manually) the two portlet.xml files ?Hello,
Spring configuration files aren't going to get merged by default; I can list out configuration files that are merged, but it won't help you in your case.
The merging mechanism isn't extensible by end-developers, so it isn't going to be possible to modify it to merge the Spring config files. Many configuration files, such as the portlet.xml file (and, I believe the Spring config files) cannot be automatically merged because the schema for the configuration file is incompatible with automatic merging-- it isn't that it can't be merged, just that the process can't be automated because details of the implementation must be taken into account when the files are merged-- details which only the developer knows.
So unfortunately, I think you will have to merge your Spring configuration files manually.
Kevin -
How to get security roles in a JSF portlet
I need to get the LDAP user-roles available in the Sun Portal Server 7 in my JSF-168 portlet.
I've added the mapping file, updated the portlet.xml and web.xml, deployed the portlet (psconsole). But the portlet shows the "content not available" error with javax....title title.
I've probably messed up the descriptors, but I don't see what is wrong. Here they are:
roleMaps.properties
cn\=VSM.Administrator,dc\=neco,dc\=cz=Administrator
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/navigation.xml,/WEB-INF/managed-beans.xml</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<filter>
<filter-name>UploadFilter</filter-name>
<filter-class>com.sun.rave.web.ui.util.UploadFilter</filter-class>
<init-param>
<description>
The maximum allowed upload size in bytes. If this is set
to a negative value, there is no maximum. The default
value is 1000000.
</description>
<param-name>maxSize</param-name>
<param-value>1000000</param-value>
</init-param>
<init-param>
<description>
The size (in bytes) of an uploaded file which, if it is
exceeded, will cause the file to be written directly to
disk instead of stored in memory. Files smaller than or
equal to this size will be stored in memory. The default
value is 4096.
</description>
<param-name>sizeThreshold</param-name>
<param-value>4096</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UploadFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<servlet-class>com.sun.errorhandler.ExceptionHandler</servlet-class>
<init-param>
<param-name>errorHost</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>errorPort</param-name>
<param-value>25444</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>ThemeServlet</servlet-name>
<servlet-class>com.sun.rave.web.ui.theme.ThemeServlet</servlet-class>
</servlet>
<servlet>
<description>Generated By Sun Java Studio Creator</description>
<display-name>CreatorPortlet Wrapper</display-name>
<servlet-name>VSMPortal</servlet-name>
<servlet-class>org.apache.pluto.core.PortletServlet</servlet-class>
<init-param>
<param-name>portlet-class</param-name>
<param-value>com.sun.faces.portlet.FacesPortlet</param-value>
</init-param>
<init-param>
<param-name>portlet-guid</param-name>
<param-value>VSMPortal.VSMPortal</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ExceptionHandlerServlet</servlet-name>
<url-pattern>/error/ExceptionHandler</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ThemeServlet</servlet-name>
<url-pattern>/theme/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>VSMPortal</servlet-name>
<url-pattern>/VSMPortal/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/null</welcome-file>
</welcome-file-list>
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>javax.faces.FacesException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<error-page>
<exception-type>com.sun.rave.web.ui.appbase.ApplicationException</exception-type>
<location>/error/ExceptionHandler</location>
</error-page>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspf</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
<security-role>
<role-name>Administrator</role-name>
</security-role>
</web-app>
portlet.xml
<?xml version='1.0' encoding='UTF-8' ?>
<portlet-app xmlns='http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd' 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' version='1.0'>
<portlet>
<description>Created By Java Studio Creator</description>
<portlet-name>VSMPortal</portlet-name>
<display-name>VSMPortal Portlet</display-name>
<portlet-class>com.sun.faces.portlet.FacesPortlet</portlet-class>
<init-param>
<name>com.sun.faces.portlet.INIT_VIEW</name>
<value>/Uctarna.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
<portlet-info>
<title>VSMPortal</title>
<short-title>VSMPortal</short-title>
<keywords>Creator</keywords>
</portlet-info>
<security-role-ref>
<role-name>Administrator</role-name>
<role-link>Administrator</role-link>
</security-role-ref>
</portlet>
</portlet-app>If I don't use the security-role and security-role-ref tags, the portlet works, and the isUserInRole method obviously doesn't.Nobody uses the LDAP roles in a portlet? Anybody knows other thread discussing similar issue (I can't find anything)?
-
Unable to bind portlet parameter with page parameter in webcenter portal
Hi All,
I am trying to bind portlet parameter with the page parameter so that I can ahieve some business requirements.
Here is what I did,
In my Portlet producer application:
1) Created standards based portlet (jsr 286) with view.jspx and edit.jspx with rest of the things being default.
2) In my portlet.xml created two parameters and assigned these parameters to the portlet created above.
3) In the view.jspx added couple of output label adf components in the page.
4) deployed this to integrated weblogic server.
In my WC portal application:
Created a new page and added the portlet to this page( WSRP connection already exists).
deployed portal application on integrated server.
In the edit mode of the page I added one page parameter(Param1) and some default (constant) value added.
What I want is this:
when Param1 value is One display first output label and
when Param1 value is Two display second output label.
I am using jdev 11.1.1.5.0 with integrated weblogic server.There is no need to use page parameters for this.
You also have two types of parameters depending on what you want...
1) Preferences: these parameters can be used on a user based level. This means that users can personalize the portlets. When a user change the value of a preference, it is only applied for that specific user
2) Public parameters: these parameters are used to customize the portlet. The value you set in these parameter apply for all users.
I have made a simple example to show these two differences: http://www.yonaweb.be/PortletTest.zip
The portlet has 4 inputText on it. The first two can be set by specifying One or Two into the preference.
The other 2 inputText uses the value of the public parameter.
You should only deploy the portlet and consume it in a webcenter application. In the webcenter application, you don't need to do anything special. All is done in the portlet.
I am guessing you don't have written the code that will get the value of the parameter:
in case of a preference you will get the value by following code:
PortletRequest request = (PortletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
PortletPreferences preferences = request.getPreferences();
return preferences.getValue("outputparam", "One");In case of a public parameter (for customization instead of personalization) you use following code to retreive the value of a public parameter:
PortletRequest req = (PortletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String param = (String)req.getParameter("PublicParam");
if(param == null)
return "Three";
return param;This code can also be found in the sample portlet application. -
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 -
How can i deploy my .war portlet application
Hi Gurrus!
I want to deploy programatically (manuall way can also helps me to program the manual logic) my .war portlet application comprise of
content:
1) 1 java file(portlet one)
2) 1 jsp file
3) web.xml
4) portlet.xml
questions:
1) how can i do the above task
2) in 8.1sp 3 is there a way that i deploy my .war as an application than using admin/workshop console link them in a portal page?, if yes than please guide me in this regard.
THANKS IN ADVANCE
-KashifHello Gurus,
Is there an update version of portletpreparer for weblogic portal 9.2?
I tried the instruction on the link and got java exception during running the ant command.
Has anyone had luck to use this utility?
Thanks,
-Nick
PS. Exception
C:\work\portletpreparer\portletpreparer\build.xml:12: java.lang.NullPointerException
at org.apache.tools.ant.Task.perform(Task.java:373)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.apache.tools.ant.Main.runBuild(Main.java:668)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
Caused by: java.lang.NullPointerException
at com.bea.task.PreparePortlets.execute(PreparePortlets.java:81)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
... 10 more
--- Nested Exception ---
java.lang.NullPointerException
at com.bea.task.PreparePortlets.execute(PreparePortlets.java:81)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.apache.tools.ant.Main.runBuild(Main.java:668)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
Total time: 1 second -
Portlets with ADF faces does not work
Hello
I am trying to portlize an hello world ADF application but am unable to do so because of the situation describe below. I have tried all the options given on this post but nothing seems to resolve the issue.
I have followed the instructions of portelizing at http://download-east.oracle.com/otndocs/tech/webcenter/files/owcs_10132_bridge_viewlet.html
A simple portlets without AFD works fine in oc4h or webcenter or jboss, but when I include ADF in the project then none of the application server or the container works
I am using jdeveloper 10.1.3.2.0 and the embedded webcenter oc4j for this test
I have two projects
1) ui where the ADF appplication is and
2) test1 where the producer is registered and is tested
In ui I have a simple jsp page untitled1.jsp with just one adf component (ADF Command Link)
Here is the source of untitled1.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/portlet" prefix="adfp"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/customizable" prefix="cust"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
<f:view>
<afh:html binding="#{backing_untitled1.html1}" id="html1">
<afh:head title="Pixel Home" binding="#{backing_untitled1.head1}"
id="head1">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
<style type="text/css">
body {
background-color: #ffffff;
a:link { color: #2121ff; }
</style>
</afh:head>
<afh:body binding="#{backing_untitled1.body1}" id="body1">
<h:form binding="#{backing_untitled1.form1}" id="form1">
<af:commandLink text="commandLink 1"
binding="#{backing_untitled1.commandLink1}"
id="commandLink1"/>
</h:form>
</afh:body>
</afh:html>
</f:view>
After deploying this in webcenter I can see the WSDL page
http://localhost:6688/AdfFacesDemo1/portlets/wsrp1?WSDL
<?xml version = '1.0' encoding = 'UTF-8'?>
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:bind="urn:oasis:names:tc:wsrp:v1:bind" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:oasis:names:tc:wsrp:v1:wsdl">
<import namespace="urn:oasis:names:tc:wsrp:v1:bind" location="wsrp_v1_bindings.wsdl"/>
<wsdl:service name="WSRP_v1_Service">
<wsdl:port binding="bind:WSRP_v1_Markup_Binding_SOAP" name="WSRPBaseService">
<soap:address location="http://localhost:6688/AdfFacesDemo1/portlets/WSRPBaseService"/>
</wsdl:port>
<wsdl:port binding="bind:WSRP_v1_ServiceDescription_Binding_SOAP" name="WSRPServiceDescriptionService">
<soap:address location="http://localhost:6688/AdfFacesDemo1/portlets/WSRPServiceDescriptionService"/>
</wsdl:port>
<wsdl:port binding="bind:WSRP_v1_Registration_Binding_SOAP" name="WSRPRegistrationService">
<soap:address location="http://localhost:6688/AdfFacesDemo1/portlets/WSRPRegistrationService"/>
</wsdl:port>
<wsdl:port binding="bind:WSRP_v1_PortletManagement_Binding_SOAP" name="WSRPPortletManagementService">
<soap:address location="http://localhost:6688/AdfFacesDemo1/portlets/WSRPPortletManagementService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
In test1 project I have a simple jsp page test1.jsp and here is the source
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/portlet" prefix="adfp"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/customizable" prefix="cust"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
<f:view>
<afh:html binding="#{backing_test1.html1}" id="html1">
<afh:head title="Pixel Home" binding="#{backing_test1.head1}" id="head1">
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
<style type="text/css">
body {
background-color: #ffffff;
a:link { color: #2121ff; }
</style>
</afh:head>
<afh:body binding="#{backing_test1.body1}" id="body1">
<h:form binding="#{backing_test1.form1}" id="form1">
<adfp:portlet value="#{bindings.ADFFacesDemoPortlet11_1}"
portletType="/oracle/adf/portlet/AdfFacesDemoProducer_1186417722625/ap/E0default_3c036e4c_0114_1000_8003_83e15f750fa7"
id="portlet1" binding="#{backing_test1.portlet1}"/>
</h:form>
</afh:body>
</afh:html>
</f:view>
<%-- oracle-jdev-comment:auto-binding-backing-bean-name:backing_test1--%>
I have already registered a producer called[b] ADFFacesDemoProducer in test1 project with 300 sec as timeout. Now when I run the test1.jsp page in oc4j container I get the following error. I have tried all the options in this forum and nothing worked.
Target URL -- http://131.225.95.117:8988/PortletTest6-test1-context-root/faces/test1.jsp
07/08/06 11:31:04 Oracle Containers for J2EE 10g (10.1.3.1.1) initialized
Warning : Not able to reserve 2048M memory for the heap. Heap reduced to 890M
Aug 6, 2007 11:31:17 AM oracle.adf.share.config.ADFConfigFactory findOrCreateADFConfig
INFO: oracle.adf.share.config.ADFConfigFactory Reading META-INF/adf-config.xml
07/08/06 11:31:18 PortletContainer portletTechnologies set to '{oracle.portlet.client.containerimpl.web.WebPortletTechnologyConfig,oracle.portlet.client.containerimpl.wsrp.WSRPPortletTechnologyConfig}' from adf-config.xml
07/08/06 11:31:18 PortletContainer defaultTimeout set to '20' from adf-config.xml
07/08/06 11:31:18 PortletContainer minimumTimeout set to '1' from adf-config.xml
07/08/06 11:31:18 PortletContainer maximumTimeout set to '60' from adf-config.xml
07/08/06 11:31:18 PortletContainer resourceProxyPath set to '/resourceproxy' from adf-config.xml
Aug 6, 2007 11:31:20 AM oracle.adfinternal.view.faces.application.ViewHandlerImpl _checkTimestamp
INFO: ADF Faces is running with time-stamp checking enabled. This should not be used in a production environment. See the oracle.adf.view.faces.CHECK_FILE_MODIFICATION property in WEB-INF/web.xml
Aug 6, 2007 11:31:20 AM oracle.portlet.client.utils.PortletLogger info
INFO: Portlet Client MBeans registered
Aug 6, 2007 11:31:25 AM oracle.adfinternal.view.faces.renderkit.html.portlet.PortletRenderer preRender
SEVERE: oracle.adf.model.portlet.binding.PortletBindingException: Unable to get portlet response (Internal Error) for portlet binding ADFFacesDemoPortlet11_1
at oracle.adf.model.portlet.binding.PortletBinding.getPortletRendition(PortletBinding.java:514)
at oracle.adfinternal.view.faces.renderkit.html.portlet.PortletRenderer.preRender(PortletRenderer.java:417)
at oracle.adfinternal.view.faces.renderkit.html.customizable.ShowDetailFrameRenderer.encodeBegin(ShowDetailFrameRenderer.java:227)
at oracle.adf.view.faces.component.UIXComponentBase.encodeBegin(UIXComponentBase.java:593)
at oracle.adfinternal.view.faces.renderkit.RenderUtils.encodeRecursive(RenderUtils.java:39)
at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:242)
at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeAllChildren(CoreRenderer.java:265)
at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:65)
at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:117)
at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:147)
at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:60)
at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169)
at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624)
at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:645)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:568)
at oracle.adf.view.faces.webapp.UIXComponentTag.doEndTag(UIXComponentTag.java:100)
at test1.jspService(_test1.java:122)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:598)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:522)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:712)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind.server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:286)
at com.evermind.server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)
at com.evermind.server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:192)
at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:197)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:620)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:215)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.portlet.client.container.PortletRemoteException: oracle.portlet.server.container.OperationFailedException: oracle.portlet.wsrp.v1.OperationFailedException: oracle.portlet.wsrp.v1.soap.OperationFailed
at oracle.portlet.client.techimpl.wsrp.WSRPBaseTerminalPipe.processException(WSRPBaseTerminalPipe.java:37)
at oracle.portlet.client.techimpl.wsrp.WSRPGetMarkupPipe.execute(WSRPGetMarkupPipe.java:185)
at oracle.portlet.client.techimpl.wsrp.WSRPGetMarkupPipe.pre(WSRPGetMarkupPipe.java:52)
at oracle.portlet.client.service.pipeline.PipeContext.internalExecute2(PipeContext.java:516)
at oracle.portlet.client.service.pipeline.PipeContext.internalExecute(PipeContext.java:403)
at oracle.portlet.client.service.pipeline.PipeContextRunnable.run(PipeContextRunnable.java:24)
at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:431)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
at oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.runTask(ModifiedThreadPoolExecutor.java:398)
at oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.run(ModifiedThreadPoolExecutor.java:423)
... 1 more
Caused by: oracle.portlet.server.container.OperationFailedException: oracle.portlet.wsrp.v1.OperationFailedException: oracle.portlet.wsrp.v1.soap.OperationFailed
at oracle.portlet.wsrp.v1.ServerToWSRPv1.getMarkup(ServerToWSRPv1.java:1093)
at oracle.portlet.client.connection.wsrp.ActivityServerWrapper.getMarkup(ActivityServerWrapper.java:1330)
at oracle.portlet.client.techimpl.wsrp.WSRPGetMarkupPipe.execute(WSRPGetMarkupPipe.java:116)
... 9 more
Caused by: oracle.portlet.wsrp.v1.OperationFailedException: oracle.portlet.wsrp.v1.soap.OperationFailed
at oracle.portlet.wsrp.v1.WSRP_v1_Markup_PortTypeJaxbToSoap.getMarkup(WSRP_v1_Markup_PortTypeJaxbToSoap.java:101)
at oracle.portlet.wsrp.v1.ServerToWSRPv1.getMarkup(ServerToWSRPv1.java:977)
... 11 more
Caused by: oracle.portlet.wsrp.v1.soap.OperationFailed
at oracle.portlet.wsrp.v1.soap.runtime.WSRP_v1_Markup_PortType_getMarkup_Fault_SOAPSerializer.deserializeDetail(WSRP_v1_Markup_PortType_getMarkup_Fault_SOAPSerializer.java:269)
at oracle.j2ee.ws.common.encoding.SOAPFaultInfoSerializer.doDeserializeSOAP11(SOAPFaultInfoSerializer.java:132)
at oracle.j2ee.ws.common.encoding.SOAPFaultInfoSerializer.doDeserialize(SOAPFaultInfoSerializer.java:94)
at oracle.j2ee.ws.common.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:180)
at oracle.j2ee.ws.common.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:147)
at oracle.portlet.wsrp.v1.soap.runtime.WSRP_v1_Markup_Binding_SOAP_Stub._readBodyFaultElement(WSRP_v1_Markup_Binding_SOAP_Stub.java:456)
at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:321)
at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
at oracle.portlet.wsrp.v1.soap.runtime.WSRP_v1_Markup_Binding_SOAP_Stub.getMarkup(WSRP_v1_Markup_Binding_SOAP_Stub.java:76)
at oracle.portlet.wsrp.v1.WSRP_v1_Markup_PortTypeJaxbToSoap.getMarkup(WSRP_v1_Markup_PortTypeJaxbToSoap.java:78)
... 12 more
Then I tried to deploy the test1.jsp as a WAR file in the webcenter OC4J and tried this URL
http://localhost:6688/AdfFacesDemoTest1/test1.jsp
but it gave me this error
500 Internal Server Error
Servlet error: An exception occurred. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
When I tried this URL I got a diffrent error. Googling this did not help at all
http://localhost:6688/AdfFacesDemoTest1/faces/test1.jsp
07/08/06 11:33:26 PortletContainer portletTechnologies set to '{oracle.portlet.client.containerimpl.web.WebPortletTechnologyConfig,oracle.portlet.client.containerimpl.wsrp.WSRPPortletTechnologyConfig}' from adf-config.xml
07/08/06 11:33:26 PortletContainer defaultTimeout set to '20' from adf-config.xml
07/08/06 11:33:26 PortletContainer minimumTimeout set to '1' from adf-config.xml
07/08/06 11:33:26 PortletContainer maximumTimeout set to '60' from adf-config.xml
07/08/06 11:33:26 PortletContainer resourceProxyPath set to '/resourceproxy' from adf-config.xml
2007-08-06 11:33:58.843 ERROR oracle.portlet.client.persistence.PersistenceNotFoundException: mdsId=/oracle/adf/portlet/AdfFacesDemoProducer_1186417722625/ap/E0default_3c036e4c_0114_1000_8003_83e15f750fa7.pxml not found
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.get(MDSPersistenceContext.java:587)
at oracle.portlet.client.beanimpl.persistence.PersistenceBeanFactory.getExisting(PersistenceBeanFactory.java:226)
at oracle.portlet.client.beanimpl.persistence.PersistenceBeanContext.getExisting(PersistenceBeanContext.java:83)
at oracle.portlet.client.containerimpl.PublicFactoryImpl.get(PublicFactoryImpl.java:248)
at oracle.portlet.client.containerimpl.PublicFactoryImpl.get(PublicFactoryImpl.java:258)
at oracle.portlet.client.containerimpl.PortletContainerImpl.getPortlet(PortletContainerImpl.java:227)
at oracle.adf.model.portlet.binding.PortletBinding.prepareModel(PortletBinding.java:801)
at oracle.adf.model.portlet.binding.PortletBinding.refresh(PortletBinding.java:606)
at oracle.adf.model.binding.DCBindingContainerDef$1RegionBindingAdapter.refresh(DCBindingContainerDef.java:1011)
at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:2455)
at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2260)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:99)
at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareModel(FacesPageLifecycle.java:73)
at oracle.adf.controller.v2.lifecycle.Lifecycle$8.execute(Lifecycle.java:210)
at oracle.adf.controller.v2.lifecycle.Lifecycle.executePhase(Lifecycle.java:116)
at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:29)
at oracle.adf.controller.faces.lifecycle.ADFPhaseListener$4.after(ADFPhaseListener.java:327)
at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:90)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:254)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197)
at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)
at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:620)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:369)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:865)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:447)
at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:215)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: oracle.mds.core.MetadataNotFoundException: No metadata found for metadata object "/oracle/adf/portlet/AdfFacesDemoProducer_1186417722625/ap/E0default_3c036e4c_0114_1000_8003_83e15f750fa7.pxml"
at oracle.mds.core.MetadataObject.getBaseMO(Unknown Source)
at oracle.mds.core.MDSSession.getBaseMO(Unknown Source)
at oracle.mds.core.MDSSession.getMutableMO(Unknown Source)
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.getBaseMutableMO(MDSPersistenceContext.java:1143)
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.get(MDSPersistenceContext.java:577)
... 40 more
Here is my portlet.xml in ui project
<?xml version="1.0" encoding="ISO-8859-1"?>
<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>ADF Faces Demo Portlet 1</description>
<portlet-name>ADFFacesDemo1</portlet-name>
<display-name>ADF Faces Demo portlet 1</display-name>
<portlet-class>oracle.portlet.server.bridges.jsf.FacesPortlet
</portlet-class>
<init-param>
<name>DefaultPage.view</name>
<value>/untitled1.jsp</value>
</init-param>
<init-param>
<name>BridgeLifecycleListeners</name>
<value>
oracle.portlet.server.bridges.jsf.adf.ADFFacesBridgeLifecycleListener,
oracle.portlet.server.bridges.jsf.adf.BindingFacesBridgeLifecycleListener
</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
<portlet-info>
<title>ADF Faces Demo Portlet 1</title>
<short-title>ADFFacesDemo1</short-title>
</portlet-info>
</portlet>
</portlet-app>
web.xml in ui project (where the AFD application is)
<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app 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/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<description>Empty web.xml file for Web Application</description>
<filter>
<filter-name>adfFaces</filter-name>
<filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>adfFaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
</web-app>
web.xml in test1 project (where portlet producer is registered)
<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app 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/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<description>Empty web.xml file for Web Application</description>
<context-param>
<param-name>CpxFileName</param-name>
<param-value>test1.DataBindings</param-value>
</context-param>
<context-param>
<param-name>oracle.mds.web-app-root</param-name>
<param-value>/test1/public_html</param-value>
</context-param>
<context-param>
<param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
<param-value>oracle.adfinternal.view.faces.change.HybridChangeManager</param-value>
</context-param>
<filter>
<filter-name>adfFaces</filter-name>
<filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
</filter>
<filter>
<filter-name>adfBindings</filter-name>
<filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
</filter>
<filter>
<filter-name>mdsFilter</filter-name>
<filter-class>oracle.mds.jsp.MDSJSPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>adfFaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jspx</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<servlet-name>resourceproxy</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<servlet-name>adfportlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>mdsFilter</filter-name>
<servlet-name>jsp2</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>adfportlet</servlet-name>
<servlet-class>oracle.adfinternal.view.faces.renderkit.html.portlet.ADFPortletServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resourceproxy</servlet-name>
<servlet-class>oracle.portlet.client.resourceproxy.adf.ADFPortletResourceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>jsp2</servlet-name>
<servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>
<init-param>
<param-name>tags_reuse_default</param-name>
<param-value>none</param-value>
</init-param>
<init-param>
<param-name>check_page_scope</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>debug_mode</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>page_provider</param-name>
<param-value>oracle.mds.jsp.MDSJSPProvider</param-value>
</init-param>
<init-param>
<param-name>page_repository</param-name>
<param-value>oracle.mds.jsp.MDSJSPProvider</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adfportlet</servlet-name>
<url-pattern>/adfportlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adfportlet</servlet-name>
<url-pattern>/adfportletfullpage</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resourceproxy</servlet-name>
<url-pattern>/resourceproxy</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp2</servlet-name>
<url-pattern>/*.jspx</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<service-ref xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<service-ref-name>service/WSRPServiceRefV1</service-ref-name>
<service-interface>javax.xml.rpc.Service</service-interface>
<wsdl-file>WEB-INF/wsdl/WSRP_v1_Service.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/WSRP_v1_Service-java-wsdl-mapping.xml</jaxrpc-mapping-file>
<service-qname xmlns:service-qname_ns__="urn:oasis:names:tc:wsrp:v1:wsdl">service-qname_ns__:WSRP_v1_Service</service-qname>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v1.soap.WSRP_v1_Markup_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v1.soap.WSRP_v1_ServiceDescription_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v1.soap.WSRP_v1_Registration_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v1.soap.WSRP_v1_PortletManagement_PortType</service-endpoint-interface>
</port-component-ref>
</service-ref>
<service-ref xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<service-ref-name>service/WSRPServiceRefV2</service-ref-name>
<service-interface>javax.xml.rpc.Service</service-interface>
<wsdl-file>WEB-INF/wsdl/WSRP_v2_Service.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/WSRP_v2_Service-java-wsdl-mapping.xml</jaxrpc-mapping-file>
<service-qname xmlns:service-qname_ns__="urn:oasis:names:tc:wsrp:v2:wsdl">service-qname_ns__:WSRP_v2_Service</service-qname>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v2.soap.WSRP_v2_Markup_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v2.soap.WSRP_v2_ServiceDescription_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v2.soap.WSRP_v2_Registration_PortType</service-endpoint-interface>
</port-component-ref>
<port-component-ref>
<service-endpoint-interface>oracle.portlet.wsrp.v2.soap.WSRP_v2_PortletManagement_PortType</service-endpoint-interface>
</port-component-ref>
</service-ref>
</web-app>
Can anyone help please
regards
VijayHello dvohra,
Thanks for the reply but I have done everything before I posted my message on this forum
1. Is the Portlet Faces Bridge library in the project libraries?
yes in both test1 project and ui project. ui project is where the ADF application is and test1 is where the producer is registered
2. I sent the web.xml earlier in the forum. Yes it include the tags
here is it again
<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app 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/web-app_2_4.xsd" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<description>Empty web.xml file for Web Application</description>
<filter>
<filter-name>adfFaces</filter-name>
<filter-class>oracle.adf.view.faces.webapp.AdfFacesFilter</filter-class>
</filter>
<filter>
<filter-name>adfBindings</filter-name>
<filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>adfFaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<url-pattern>*.jspx</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>oracle.adf.view.faces.webapp.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
</web-app>
3. Yes it include that tag also. Please see the web.xml I pasted above
4. Yes I deployed it as the simple WAR file and NEVER as a WebCenter Application WAR
I am assuming that when you refer to web.xml you refer to the one in my ui project where the ADF application is . There is another web.xml file in test1 project where I try to test the portlet. That web.xml is also pasted in my earlier blog
Any other idea ?
thanks a lot
Vijay
______________________________________________________________________ -
Getting the username from a portlet
Hi,
I have a new installation of Portal 10.1.4 and I'm trying to write a portlet that has access to the username from within a JSP. I am trying renderRequest.getRemoteUser() and renderRequest.getUserPrincipal().getName() and both return the username with brackets and a number inside, for example "MCOARR[1]". What I really want is the uid from LDAP.
Looking in the directory server my user is mcoarr (or more specifically, both the uid and cn attributes are set to "mcoarr").
How do I get just the username?
Thanks,
MattYeah, I had to do that too (the text munging stuff). Unfortunately, Oracle Portal doesn't seem to be following the WSRP spec on getting user attributes. There is a whole section in the spec about how to map user attributes in your portlet.xml and then get them in a portlet by doing stuff like:
Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
String givenName = (userInfo!=null) ? (String) userInfo.get(“user.name.given”) : “”;
String lastName = (userInfo!=null) ? (String) userInfo.get(“user.name.family”) : “”;
This is how it works in uPortal, Liferay and other portals we tried. I don't know why Oracle portal has been through two revs of WSRP support and hasn't got this right yet.
-Mike
Maybe you are looking for
-
How do I view websites in theie desktop version instead of mobile?
I would like to view Facebook.com in the desktop version, but am not given that option.
-
Authorisation object for posting parked document
Hi Gurus, In our company, documents are being parked via an interface. After this, i require that only one particular person be able to post document if the GL account is say 100000 and no one else should be able to post this document eg if GL accoun
-
Passing date criteria in url parameter
Hi, I want to filter a recordset by a given date. Create the recordset, if I use a runtime value of #27/11/06# all the records for that date are returned. However, when I try to pass the same information through an URL Parameter it doesn't work. Is t
-
Hi, I have a report which I have to export to excel. I am getting data in this report from 3 tables for one Partner. Unique record id there in the master table, and in other 3 tables, for the same Partner there are multiple records. When I write a qu
-
When to turn sleep, turn off, etc.?
This question has probably already been asked, but at what points (in terms of time not in use) is it worth putting the MacBook to sleep? Turning it off? What's best for the battery? The hardware? (For instance, if you're going to be away from the co