You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bridges-user@portals.apache.org by 朱立勋 <zh...@gmail.com> on 2006/08/03 04:19:25 UTC
uPortal 2.5.2 and Struts Bridges question
I made reference to jpetstore after uPortal2.5.2 Lane use struts bridges,But without success ...
jar libray:struts-1.2.7,struts-el-1.2.7,standard-1.0.6,portals-bridges-struts-1.2.7-1.0,portals-bridges-common-1.0.......
portlet.xml
----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app id="ServletContextProvider" version="1.0">
<portlet id="ServletContextProvider">
<init-param>
<name>ServletContextProvider</name>
<value>sample.portlet.bridge.PortalServletContextProvider</value>
</init-param>
<init-param>
<name>ViewPage</name>
<value>/easySample.do</value>
</init-param>
<description>Portlet Sample</description>
<portlet-name>StrutsBridgeSample</portlet-name>
<display-name>StrutsBridgeSample</display-name>
<portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<portlet-info>
<title>StrutsBridgeSample</title>
<keywords>Struts</keywords>
</portlet-info>
</portlet>
</portlet-app>
---------------------------------
struts-portlet-config.xml
-----------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<config>
<render-context>
<attribute name="errors"/>
<attribute name="message"/>
</render-context>
<portlet-url-type>
<render path="/easySample5"/>
<action path="/easySample3"/>
<resource path="/images/"/>
</portlet-url-type>
</config>
----------------------------------
struts-config.xml
---------------------------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="easySampleForm" type="sample.portlet.bridge.action.EasySampleForm"/>
</form-beans>
<global-exceptions>
<exception key="errors.general" type="java.lang.Exception" path="/helloWorld.jsp"/>
</global-exceptions>
<action-mappings>
<action path="/easySample3" type="sample.portlet.bridge.action.BeanAction"
name="easySampleForm" scope="session"
validate="false" >
<forward name="success" path="/easySample3.do" redirect="true"/>
</action>
<action path="/easySample" include="/strutsBridge/EasySample.jsp"/>
<action path="/easySample1" include="/strutsBridge/EasySample.jsp"/>
<action path="/easySample2" include="/strutsBridge/EasySample.jsp"/>
<action path="/easySample4" include="/strutsBridge/EasySample.jsp"/>
<action path="/easySample5" include="/strutsBridge/EasySample.jsp"/>
</action-mappings>
<controller pagePattern="$M$P" inputForward="false" processorClass="org.apache.portals.bridges.struts.PortletRequestProcessor"/>
<message-resources parameter="properties.application"/>
</struts-config>
--------------------------------------------------------
/strutsBridge/EasySample.jsp
-----------------------------------------------------------
<%@page contentType="text/html"%>
<%@ taglib uri="http://portals.apache.org/bridges/struts/tags-portlet-html" prefix="html" %>
------- html:link href -----------<br />
<html:link href="easySample.do">link to salf</html:link><br />
<html:link href="easySample1.do">1 link to salf</html:link><br />
<html:link href="easySample2.do">2 link to salf</html:link><br />
<html:link href="easySample3.do">3 link to salf</html:link><br />
------- html:link action -----------<br />
<html:link action="easySample.do">link to salf</html:link><br />
<html:link action="easySample1.do">1 link to salf</html:link><br />
<html:link action="easySample2.do">2 link to salf</html:link><br />
<html:link action="easySample3.do">3 link to salf</html:link><br />
------- html:rewrite href -----------<br />
<html:rewrite href="easySample.do"/><br />
<html:rewrite href="easySample1.do"/><br />
<html:rewrite href="easySample2.do"/><br />
<html:rewrite href="easySample3.do"/><br />
------- html:rewrite action -----------<br />
<html:rewrite action="easySample.do"/><br />
<html:rewrite action="easySample1.do"/><br />
<html:rewrite action="easySample2.do"/><br />
<html:rewrite action="easySample3.do"/><br />
---form bean data--- <br />
<html:form method="post" action="/easySample3.do">
<input name=username size=14><br />
<html:image border="0" src="images/IMG_1944.JPG"/><br />
</html:form>
---form bean data--- <br />
<br />
<html:link page="images/IMG_1944.JPG">
<html:img border="0" src="images/IMG_1944.JPG" />
</html:link>
<br />
<br />
------------------------------------------------------------------
sample.portlet.bridge.PortalServletContextProvider.java
-------------------------------------------------------------------------------
package sample.portlet.bridge;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.pluto.core.impl.PortletContextImpl;
import org.apache.portals.bridges.common.ServletContextProvider;
/**
* PortalServletContextProvider supplies access to the Servlet context of uPortal Portlet.
*/
public class PortalServletContextProvider implements ServletContextProvider {
public ServletContext getServletContext(GenericPortlet portlet) {
return ((PortletContextImpl) portlet.getPortletContext())
.getServletContext();
}
public HttpServletRequest getHttpServletRequest(GenericPortlet portlet,
PortletRequest request) {
return (HttpServletRequest) ((HttpServletRequestWrapper) request)
.getRequest();
}
public HttpServletResponse getHttpServletResponse(GenericPortlet portlet,
PortletResponse response) {
return (HttpServletResponse) ((HttpServletResponseWrapper) response)
.getResponse();
}
}
------------------------------------------------------------------------------------------
sample.portlet.bridge.action.EasySampleForm.java
------------------------------------------------------------------------------------------
package sample.portlet.bridge.action;
public class EasySampleForm extends BaseBean {
/**
* username
*/
private String username = null;
/**
* password
*/
private String password = null;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String easySample()
{
System.out.println("###########easySample()");
return "success";
}
public String easySample1()
{
System.out.println("###########easySample()1");
return "success";
}
public String easySample2()
{
System.out.println("###########easySample()2");
return "success";
}
public String easySample3()
{
System.out.println("###########easySample()3");
return "success";
}
public String easySample4()
{
System.out.println("###########easySample()4");
return "success";
}
public String easySample5()
{
System.out.println("###########easySample()5");
return "success";
}
public void clear () {
System.out.println("###########clear()");
}
}
------------------------------------------------------------------------------------------
BaseBean and BeanAction use the code jpetstore.
Activated uPortal, and the operation of portlet. Then I submitted the form page view, the emergence of such language presentation.
------------------------------
The requested resource (/StrutsBridgeSample/easySample2.do#n142) is not available
------------------------------
Laws PortalServletContextProvider
sample.portlet.bridge.PortalServletContextProvider.java
------------------------------------------
package sample.portlet.bridge;
import javax.portlet.*;
import javax.servlet.ServletContext;
import javax.servlet.http.*;
import org.apache.pluto.core.impl.PortletContextImpl;
import org.apache.portals.bridges.common.ServletContextProvider;
// Referenced classes of package ca.mun.portal.bridges:
// PortletResponseWrapper
public class PortalServletContextProvider
implements ServletContextProvider
{
public PortalServletContextProvider()
{
}
public ServletContext getServletContext(GenericPortlet portlet)
{
return ((PortletContextImpl)portlet.getPortletContext()).getServletContext();
}
public HttpServletRequest getHttpServletRequest(GenericPortlet portlet, PortletRequest request)
{
return (HttpServletRequest)((HttpServletRequestWrapper)request).getRequest();
}
public HttpServletResponse getHttpServletResponse(GenericPortlet portlet, PortletResponse response)
{
return (HttpServletResponse)(new PortletResponseWrapper((HttpServletResponse)response)).getResponse();
}
}
------------------------------------------
sample.portlet.bridge.PortalServletContextProvider.java
------------------------------------------
package sample.portlet.bridge;
import java.io.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
public class PortletResponseWrapper extends HttpServletResponseWrapper
{
public PortletResponseWrapper(HttpServletResponse response)
{
super(response);
}
public ServletOutputStream getOutputStream()
throws IOException
{
return getResponse().getOutputStream();
}
public PrintWriter getWriter()
throws IOException
{
return new PrintWriter(new OutputStreamWriter(getOutputStream(), getCharacterEncoding()), true);
}
}
------------------------------------------
Activated uPortal, and the operation of portlet. Then I submitted the form page view, the emergence of such language presentation.
----------------------------------------------------------------------
Error Report
Channel ID:
n142
Message:
Message not available
Error type:
Channel failed to accept runtime data (code 3)
Problem type:
General rendering problem
Error message
java.lang.IllegalArgumentException: Path http://61.11.7.121:8080/StrutsBridgeSample/easySample3.do does not start with a "/" character
--------------------------------------------------------
help me!!
--------------
zhulx
2006-08-01
---------------------------------------------------------------------
To unsubscribe, e-mail: bridges-user-unsubscribe@portals.apache.org
For additional commands, e-mail: bridges-user-help@portals.apache.org