[jboss-user] [JBoss Portal] - Portlet Preferences store() error
bryancan
do-not-reply at jboss.com
Thu Sep 4 04:35:12 EDT 2008
I am using jboss portal 2.6.6. I have a struts portlet that works fine, except when I need to use prefs.store() to store preferences... I get:
Caused by: java.lang.IllegalStateException: Store must be called within the scope of an action request
at org.jboss.portal.portlet.impl.jsr168.api.PortletPreferencesImpl.store(PortletPreferencesImpl.java:282)
at com.portlet.data_now.action.ViewAction.execute(ViewAction.java:56)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
...
here is the source for the class I get the error from:
| package com.portlet.data_now.action;
|
| import java.io.IOException;
| import java.security.NoSuchAlgorithmException;
|
| import javax.portlet.PortletPreferences;
| import javax.portlet.ReadOnlyException;
| import javax.portlet.RenderRequest;
| import javax.portlet.RenderResponse;
| import javax.portlet.ValidatorException;
| import javax.servlet.http.HttpServletRequest;
| import javax.servlet.http.HttpServletResponse;
|
| import org.apache.struts.action.Action;
| import org.apache.struts.action.ActionForm;
| import org.apache.struts.action.ActionForward;
| import org.apache.struts.action.ActionMapping;
|
| import com.firescope.data_now.FileCreator;
|
| public class ViewAction extends Action {
| public ActionForward execute(ActionMapping mapping, ActionForm form,
| HttpServletRequest req, HttpServletResponse res) {
| RenderRequest pReq = (RenderRequest) req.getAttribute("javax.portlet.request");
| RenderResponse rRes = (RenderResponse) req.getAttribute("javax.portlet.response");
| PortletPreferences pr = (PortletPreferences) pReq.getPreferences();
| String fwd = "portlet.data_now.view";
| String alreadyOK = pr.getValue("verified", "");
| String isOK = null;
| String keytext = req.getParameter("licenseKey");
|
| if ((null != keytext) && (!keytext.equals(""))) {
| FileCreator fc = new FileCreator();
| String success = null;
| try {
| success = fc.makeKeyFile(keytext);
| } catch (IOException e) {
| System.out.println("Error writing key file: "+e);
| }
| }
|
| if ((alreadyOK == null) || (!alreadyOK.equals("1"))) {
| FileReader fr = new FileReader();
| try {
| isOK = fr.getLines(pReq, rRes);
| } catch (NoSuchAlgorithmException e) {
| e.printStackTrace();
| } catch (ReadOnlyException e) {
| e.printStackTrace();
| } catch (ValidatorException e) {
| e.printStackTrace();
| } finally {
| if((null != isOK)&&(isOK.equals("1"))){
| try {
| pr.setValue("verified", "1");
| pr.store();
| return mapping.findForward(fwd);
| } catch (ReadOnlyException e) {
| e.printStackTrace();
| }
| }
| }
| } else {
| isOK = "1";
| }
| if ((null == isOK) || (!isOK.equals("1"))) {
| fwd = "portlet.data_now.license";
| }
| return mapping.findForward(fwd);
| }
| }
|
|
This same code works perfectly in another portal and I am trying to port this to jboss... any help here?
Bryancan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4174205#4174205
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4174205
More information about the jboss-user
mailing list