DerShung,
Now it works for me :-)
It seems to be a tomcat issue with the autoDeploy parameter. There is a bug in Tomcat 5.0.28. The autoDeploy parameter is not using correctly in this version.
With Tomcat 5.0.30, Graffito deployement into Jetspeed works like a charm on my PC. You don't have to change something, autoDeploy is set to true by default (see in the server.xml)
Can you tell me which tomcat version are you using ?
I don't advise you to use tomcat 5.5.x, this version provides other issues with J2.
Christophe
Christophe Lombart wrote:
DerShung Yang wrote:
Just FYI that I posted the classloader issue on Jira, along with my
analysis, although I don't know how to resolve it yet. I figure that this
is a lower-priority issue since the problem would go away if they just
relaunch Tomcat.
ok thanks ! for me it is a high priority. it is quite difficult to develop in this condition.
If I don't find something this evening, I will start a discussion on the J2 mailing list.
DerShung
-----Original Message-----
From: LOMBART Christophe [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 24, 2005 5:13 AM
To: [EMAIL PROTECTED]
Subject: FW: Jetspeed deployment issue
Great ! I'm happy see that is running for you. FYI, The "Graffito News" document is not yet ready to run. I'm going to add it after some refactoring.
Concerning your classloader issues, I have also sometime this kind of errors
when I redeploy the graffito application. When I restart Tomcat it works
like a charm but sometime when redeploying the war, I got some strange
errors. I'm going to investigate in more details this issues.
-----Original Message-----
From: DerShung Yang [mailto:[EMAIL PROTECTED]
Sent: Thu 2/24/2005 7:01 AM
To: [EMAIL PROTECTED]
Cc:
Subject: RE: Jetspeed deployment issue
Well, the classloader problem went away the second time I launched Tomcat.
I don't know if there's anything to do with the fact that during the first
launch of Tomcat, the graffito-browser.war was just unpacked from
jetspeed/WEB-INF/deploy and deployed into webapps. Anyway, I'll experiment
with this some more and enter a bug report if I can reproduce it.
BTW, the graffito browser now works great! I was able to add folders, a Word doc, and an HTML page.
DerShung
-----Original Message----- From: DerShung Yang [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 23, 2005 10:57 PM To: [EMAIL PROTECTED] Subject: RE: Jetspeed deployment issue
Hi, Christophe, I think the patch should work. However, I'm no longer able
to get to the graffito portlet. Initially I had some problem with having
both of graffito.war and graffito-browser.war at the same time. I removed
all the old jar/war files and checked out the latest from both Graffito and
Jetspeed and did clean builds. When I click on the Graffito tab, the
following exception was what I got. Any clues? I'll also look at this some
more tomorrow. I hope I didn't get some out-of-date files hidden
somewhere...
VelocityViewServlet : Error processing the template
Invocation of method 'getTitle' in class
org.apache.jetspeed.velocity.JetspeedPowerTool threw exception class
java.lang.IllegalStateException : No classloader has been defined for
portlet application 1
java.lang.IllegalStateException: No classloader has been defined for portlet
application 1
at
org.apache.jetspeed.factory.JetspeedPortletFactory.getPortletClassLoader(Jet
speedPortletFactory.java:216)
at
org.apache.jetspeed.request.JetspeedRequestContext.getPreferedLanguage(Jetsp
eedRequestContext.java:497)
at
org.apache.jetspeed.velocity.JetspeedPowerTool.getTitle(JetspeedPowerTool.ja
va:993)
at
org.apache.jetspeed.velocity.JetspeedPowerTool.getTitle(JetspeedPowerTool.ja
va:972)
at sun.reflect.GeneratedMethodAccessor240.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(Ub
erspectImpl.java:267)
at
org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197
)
at
org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.ja
va:175)
at
org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.jav
a:220)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:23
0)
at
org.apache.velocity.runtime.directive.Parse.render(Parse.java:181)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav
a:114)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
at
org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement
.java:70)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
at
org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav
a:114)
at
org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
at
org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166)
at
org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.jav
a:114)
at
org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:23
0)
at org.apache.velocity.Template.merge(Template.java:256)
at
org.apache.portals.bridges.velocity.BridgesVelocityViewServlet.mergeTemplate
(BridgesVelocityViewServlet.java:118)
at
org.apache.velocity.tools.view.servlet.VelocityViewServlet.doRequest(Unknown
Source)
at
org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(Unknown
Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:704)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatch
er.java:590)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher
.java:510)
at
org.apache.jetspeed.dispatcher.JetspeedRequestDispatcher.include(JetspeedReq
uestDispatcher.java:65)
at
org.apache.portals.bridges.common.GenericServletPortlet.doView(GenericServle
tPortlet.java:363)
at
org.apache.jetspeed.portlets.layout.LayoutPortlet.doView(LayoutPortlet.java:
134)
at
org.apache.jetspeed.portlets.layout.MultiColumnPortlet.doView(MultiColumnPor
tlet.java:120)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:235)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:163)
at
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContain
erServlet.java:233)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:704)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatch
er.java:590)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher
.java:510)
at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPo
rtletInvoker.java:215)
at
org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPo
rtletInvoker.java:125)
at sun.reflect.GeneratedMethodAccessor235.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflecti
on(AopProxyUtils.java:61)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:142)
at $Proxy14.render(Unknown Source)
at
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.jav
a:103)
at
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(
JetspeedPortletContainerWrapper.java:88)
at
org.apache.jetspeed.aggregator.impl.RenderingJob.execute(RenderingJob.java:1
08)
at
org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRen
dererImpl.java:103)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(Pa
geAggregatorImpl.java:261)
at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorI
mpl.java:148)
at
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:4
8)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveIm
pl.java:117)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl
.java:133)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(Passwor
dCredentialValveImpl.java:139)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecuri
tyValve.java:117)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:437)
at
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecur
ityValve.java:111)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLVa
lveImpl.java:55)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityV
alveImpl.java:127)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(Localizat
ionValveImpl.java:122)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.ja
va:209)
at
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:1
91)
at
org.apache.jetspeed.engine.AbstractEngine.service(AbstractEngine.java:257)
at
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:225)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:462)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118
)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:683) at java.lang.Thread.run(Thread.java:534)
Thanks a lot, DerShung
-----Original Message-----
From: Christophe Lombart [mailto:[EMAIL PROTECTED]
Sent: Wednesday, February 23, 2005 2:56 PM
To: [EMAIL PROTECTED]
Subject: Re: Jetspeed deployment issue
DerShung,
I just commited your patch for the jetspeed-spring config file. Can you check if it is ok for you ?
Thanks, Christophe
DerShung Yang wrote:
I checked out Jetspeed 2 on 2/16. Or maybe you have a newer version of
Jetspeed? Anyway, hope the patch would allow us not to worry about keeping
in sync with Jetspeed, unless they make some drastic structural changes.
Regarding the add folder/document buttons, I was again using the 2/16
snapshot, which was apparently out of date. I checked out the code today
and the new code base does allow addition and viewing of folders/documents.
Thanks a lot for the info!!
I'll continue learning and playing with new code base and report the things
that I find on Jira.
Again, thanks a lot for the info, DerShung
-----Original Message-----
From: Christophe Lombart [mailto:[EMAIL PROTECTED]
Sent: Tuesday, February 22, 2005 5:18 PM
To: [EMAIL PROTECTED]
Subject: Re: Jetspeed deployment issue
DerShung Yang wrote:
Hi, I just started trying to get Graffito up and running on my machine and ran into some problem deploying Graffito into Jetspeed 2. Basically, the current version of maven.xml in graffito/jetspeed2-deploy does a direct copy of src/assembly/jetspeed-spring.xml into the deployed Jetspeed directory (webapps/jetspeed/WEB-INF/assembly). However, the jetspeed-spring.xml in Graffito seems out of date compared to the latest one from Jetspeed, causing some conflicts at runtime.
That's strange, I'm using a recent Jetspeed 2 update.
I was able to fix this problem by modifying graffito/jetspeed2-deploy/maven.xml so that it dynamically inserts the two Graffito entries (i.e., ContentServer and ContentModel) into the deployed jetspeed-spring.xml. The modified maven.xml also has some rudimentary protection against re-insertion for re-deployment by checking if the word "graffito" is already present in the jetspeed-spring.xml file. Not a perfect solution, but should alleviate some of the issues associated with static file copying. The modified maven.xml is attached.
Thanks for the patch, I'm going to check it ASAP (probably tomorrow). I like your patch :-) It is always tedious to check if the jetspeed-spring.xml is still up to date.
I'm finally able to get the Graffito content browser portlet running inside of Jetspeed 2, although the buttons to add either folders or documents don't work yet (I'll continue digging into that problem).
Please give more info. What do you see in the edit mode ? The button are
available only in the edit mode. I just commited new features in this
portlet :
In summrary, you can now :
In the view mode : Browser and view folders & documents.
In the edit mode : add, delete folders & documents, upload documents &
use the HTML editor (currenlty Kupu).
I'm going to add more and more features in this portlet.
Anyway, I thought I might share my two cents. With limited exposure to Graffito, I hope this fix makes sense. Or if there's better way to handle this, please let me know.
All contribution makes sense ! You are welcome and thanks again.
I don't know if this is the right venue to communicate this type of issues. Or should I use Jira?
Yes, Jira is more appropriate to communicate this kind of issues.
Regards, Christophe
