John,

Usually portlet deployment problems come about as a result of the unique configuration changes required within your portlet webapp by the specific portlet-container into which you are deploying. To illustrate these required changes, download both the spring-portlet-sample.zip and pluto-spring-portlet-sample.zip files and unzip them and then unpack the war files.

The first example is a generic JSR-168 webapp that is ready to be customized for a given portlet-container. The second is the same webapp already customized to run within Pluto. You'll see that there are two things that have been done to the Pluto version:

1. The web.xml file has been modified. This is necessary so that portlet-container webapp can issue cross-context requests into the portlet webapp. This generally involves some kind of well-defined servlet from the portlet-container itself. In the case of Pluto, a separate servlet is defined for each portlet, each one using the org.apache.pluto.core.PortletServlet class. Some other portlet-containers use a single servlet for all available portlets or use a wrapper servlet of some kind. The point is that each portlet-framework will have a unique way of bridging from the portlet-container webapp to the portlet webapp you your webapp must be modified to respond to these requests.

2. A 'portlet.tld' file has been placed into the WEB-INF/tags directory. The contents of this file define the standard JSR-168 JSP tags and the classes that implement them. In the case of Pluto, these are various classes within the org.apache.pluto.tags package. The implementation of the tags is a part of the portlet-container's responsibilities and your webapp needs direct access to them, so this definition is specific to the given portlet-container.

This is the basic set of changes required to deploy a portlet webapp to work with any portlet-container webapp. However, a given portlet-container may require additional changes, such as entire jar files that must be placed in WEB-INF/lib or additional xml files that must be placed into WEB-INF. They also usually require some kind of configuration on the side of the portlet-container webapp to "register" your portlets -- these will be entirely unique to the portlet-container.

Several portlet-containers include "automated" JSR-168 portlet webapp deployment utilities that try to make the required changes for you. Our experience is that these rarely work correctly. They usually provide the necessary indicators about what changes are needed for proper deployment, but they frequently need to be adjusted by hand to work correctly. For example, they will sometimes assume that the Spring Portlet ViewRendererServlet is some kind of portlet and attempt to wrap it or modify it to enable cross-context access to it -- this will break the servlet and Spring will be unable to render any views unless this is corrected by hand.

The bottom line is that it is important to understand what modifications are required to deploy a generic portlet webapp to work with a specific portlet-container and then ensure those modifications are correctly made to your webapp. Unfortunately, these modifications are frequently poorly documented (if they are documented at all), especially if the portlet-container includes a deployment utility.

All that said, since Jetspeed 2 uses Pluto, you should be able to use the pluto-spring-portlet-sample.zip with little or no additional modifications. Be sure NOT to run this webapp through the automated deployment process -- it has already been modified for use with Pluto and running it through deployment again is likely to mangle it quite a bit.

Let me know how your deployment efforts progress.

John Lewis



Daly, JohnG wrote:

Hi,

I have managed to install jetspeed and get it running with Tomcat and have
got a simple hello world portlet up and running.  However I am now trying to
get the spring-portlet-sample.zip
</confluence/spring/download/attachments/10/spring-portlet-sample.zip>
sample from
http://opensource2.atlassian.com/confluence/spring/pages/viewpageattachments
.action?pageId=10
<http://opensource2.atlassian.com/confluence/spring/pages/viewpageattachment
s.action?pageId=10>  deployed.
I am getting a lot of errors. All I did was add  a fragment to the
default-page.psml file and drop the war file itself into the the deploy
folder. This example works if I just deploy it on pluto.

The following is the error I get.
20-Sep-2005 16:45:50 org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 6 column 17: Document root element "taglib",
must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "taglib", must match
DOCTYPE root "null".
       at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
       at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at
org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown
Source)
       at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown
Source)
       at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown
Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkno
wn Source)
       at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElem
entHook(Unknown Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
her.dispatch(Unknown Sour
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at org.apache.commons.digester.Digester.parse(Digester.java:1567)
       at
org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:9
28)
       at
org.apache.catalina.startup.ContextConfig.tldScanTld(ContextConfig.java:959)
       at
org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:811)
       at
org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:587)
       at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
181)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3523)
       at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
74)
       at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
       at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)
       at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j
ava:260)
       at
org.apache.catalina.core.StandardHost.install(StandardHost.java:741)
       at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:512
)
       at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354)
       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)
       at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149)
       at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
       at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
       at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
       at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
       at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
       at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
       at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
20-Sep-2005 16:45:50 org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 6 column 17: Document is invalid: no grammar
found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
       at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
       at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown
Source)
       at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown
Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkno
wn Source)
       at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElem
entHook(Unknown Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
her.dispatch(Unknown Sour
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at org.apache.commons.digester.Digester.parse(Digester.java:1567)
       at
org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:9
28)
       at
org.apache.catalina.startup.ContextConfig.tldScanTld(ContextConfig.java:959)
       at
org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:811)
       at
org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:587)
       at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
181)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3523)
       at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
74)
       at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
       at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)
       at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j
ava:260)
       at
org.apache.catalina.core.StandardHost.install(StandardHost.java:741)
       at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:512
)
       at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354)
       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)
       at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149)
       at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
       at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
       at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
       at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
       at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
       at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
       at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
20-Sep-2005 16:45:50 org.apache.commons.digester.Digester error
SEVERE: Parse Error at line 6 column 19: Document root element "taglib",
must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "taglib", must match
DOCTYPE root "null".
       at
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
Source)
       at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
Source)
       at
org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown
Source)
       at
org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown
Source)
       at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown
Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unkno
wn Source)
       at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElem
entHook(Unknown Source)
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatc
her.dispatch(Unknown Sour
       at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
       at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
       at org.apache.commons.digester.Digester.parse(Digester.java:1567)
       at
org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:9
28)
       at
org.apache.catalina.startup.ContextConfig.tldScanTld(ContextConfig.java:959)
       at
org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:811)
       at
org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:587)
       at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
181)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3523)
       at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:7
74)
       at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
       at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:548)
       at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.j
ava:260)
       at
org.apache.catalina.core.StandardHost.install(StandardHost.java:741)
       at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:512
)
       at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:354)
       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:671)
       at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
       at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1149)
       at
org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
       at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
       at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316)
       at
org.apache.catalina.core.StandardService.start(StandardService.java:450)
       at
org.apache.catalina.core.StandardServer.start(StandardServer.java:2143)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
       at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
       at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
       at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
The errors I receive are the following:


Regards,
John


John Daly
Fisc-Ireland Ltd. / Fidelity Investments
*Tel internal: 8-737-7469
*Tel External: +353-(0)91-74-7469
*E-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
FISC Ireland Ltd., registered in Ireland no. 245656. Registered office:
Hardwicke House, Upper Hatch Street, Dublin 2.
Any comments or statements made are not necessarily those of Fidelity
Investments, its subsidiaries or affiliates.




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to