On 11/9/05, Patrick Huber <[EMAIL PROTECTED]> wrote:
Portal is a webapp which integrates portlets, while portlets reside in a proper portlet-app, which is another webapp. Thus all such webapps (portal webapp, portlet-apps...) need to access portlet-api.jar. That's why this jar should be in tomcat's shared library.
When you deploy your portlet-app to tomcat, the pluto deployer will modify the war file by injecting some new elements in the web.xml. All portlets defined in your portlet.xml will be wrapped as a servlet. That servlet, which we call it the InvokerServlet, resides in the pluto-container.jar, and needs pluto-descriptor-*.jar. That is to say, both your portlet-app and the portal need that jars. That's the reason why they should be in tomcat's shared library.
Yes, tomcat will auto-deploy all war files found under the webapps dir. But the config files (pluto.xml and testsuite.xml) are still necessary for two reasons:
* they may tell tomcat where to deploy the war files: pluto-portal.war will be deployed to pluto/, while pluto-testsuite.war will be deployed to testsuite/.
* they set the cross-context to true. That is required by the portal driver, since portlets are not in the same context as the portal.
You are right. Tomcat knows nothing about the portlet container. Tomcat loads and initializes the invoker servlet, which is provided by pluto. Then it is the InvokerServlet, not tomcat, that invokes the real portlet. The InvokerServlet knows almost everything about pluto.
Hi all
I'm wondering what's necessary to create a Portal of my own with
pluto-1.1. I've gone trough the pluto-portal.war and
pluto-testsuite.war and my impression is this:
Some libraries must be in TOMCAT/shared/lib (like portlet-api,
pluto-descriptor and a few others). What's the reason for this?
Portal is a webapp which integrates portlets, while portlets reside in a proper portlet-app, which is another webapp. Thus all such webapps (portal webapp, portlet-apps...) need to access portlet-api.jar. That's why this jar should be in tomcat's shared library.
When you deploy your portlet-app to tomcat, the pluto deployer will modify the war file by injecting some new elements in the web.xml. All portlets defined in your portlet.xml will be wrapped as a servlet. That servlet, which we call it the InvokerServlet, resides in the pluto-container.jar, and needs pluto-descriptor-*.jar. That is to say, both your portlet-app and the portal need that jars. That's the reason why they should be in tomcat's shared library.
Generally, I'd rather deploy all libs as part of the webapp war. Also,
I'm wondering about the files being copied to
TOMCAT/conf/Catalina/localhost - they're not that important since
tomcat should pick up the war files by himself, shouldn't he?
Yes, tomcat will auto-deploy all war files found under the webapps dir. But the config files (pluto.xml and testsuite.xml) are still necessary for two reasons:
* they may tell tomcat where to deploy the war files: pluto-portal.war will be deployed to pluto/, while pluto-testsuite.war will be deployed to testsuite/.
* they set the cross-context to true. That is required by the portal driver, since portlets are not in the same context as the portal.
The files pluto-portal-driver*.xml work somewhat like the web.xml.
They mark a webapp as portal and if they are present, the
portal-driver picks up the webapp (probably after it's been deployed
by tomcat) and initializes the portal.
As it seems to me, at the moment, the portlet.xml is a marker file too
and is only relevant to the portlet container. I assume, tomcat loads
and initializes the webapp (servlets) and then calls the portlet
container to initialize the portlets. How does tomcat know about the
portlet container?
You are right. Tomcat knows nothing about the portlet container. Tomcat loads and initializes the invoker servlet, which is provided by pluto. Then it is the InvokerServlet, not tomcat, that invokes the real portlet. The InvokerServlet knows almost everything about pluto.
I home someone can clear this up so I get a better understanding of
the pluto architecture.
Thanks
Patrick
Hope that helps.
Regards
--
ZHENG Zhong
1 Avenue Alphand
75116 Paris, France
+33 6 76 80 45 90
