[Building Sakai] Jforum in Sakai 10

Niebel, William D. (Bill) (wdn5e) wdn5e at eservices.virginia.edu
Fri Nov 21 10:42:13 PST 2014


This might be a class loader issue, i.e., the classes involved on casting might be incompatible not from having different coded contents -- but just because they were loaded by different class loaders.  This could be from the interface and implementation being differently loaded, but maybe instead from one of these (interface or implementation) being loaded twice by two different class loaders.

Maybe related or not:
https://confluence.sakaiproject.org/display/DOC/Sakai+10+and+later+System+Requirements
refers to
https://confluence.sakaiproject.org/display/BOOT/Install+Tomcat+7
I would make sure your edit was right at step 9 in the second document.

Tomcat changed its class loader relationships (their priority or ordering, something like that) a major release ago or two.  I don't know if the configuration edit (step 9) was tied to that.  Regardless, looking at where the ClassCastException was thrown, the class is being loaded from its stated name, then cast, so class loaders and their ordered search through class file directories and jar sources seem possibly involved.

Separately, did you look at the versions (and parent versions) of the pom files in the various Etudes tools you have installed, and in Sakai10 top-level and master poms (both)?  It looks like it would be easy to mix locally-built and remotely-fetched maven artifacts -- or to duplicate an artifact but with two different versions.  Importantly, this could manifest as unexpected and maybe unseen property settings being used on build -- as opposed to maybe more obviously multiple jars deploying to Tomcat and containing the same class.  This all depends on if properties are set differently in various parts of the build because of different versions or parenting settings in the poms.

We are beginning our upgrade process to 10.2, but won't bring in jforum probably for some weeks.  So we certainly wish you early success and would like to hear how you resolve this.

Best of luck!

Bill Niebel
University of Virginia



________________________________________
From: sakai-dev-bounces at collab.sakaiproject.org [sakai-dev-bounces at collab.sakaiproject.org] on behalf of Murthy Tanniru [murthy at etudes.org]
Sent: Thursday, November 20, 2014 4:57 PM
To: Kusnetz, Jeremy; sakai-dev at collab.sakaiproject.org
Subject: Re: [Building Sakai] Jforum in Sakai 10

As of now we don't have timeline. May be in January/February we will
test with Sakai 10.

The current version should work. From the error message there seems
conflict with api and impl version of files

Murthy
On 11/20/2014 1:53 PM, Kusnetz, Jeremy wrote:
> Thanks.  No multiple versions of the files in those directories.
>
> Is there a timeline for when Jforums will be tested in 10?  Since you have
> already done Melete and Mneme is Jforum next on your list?
>
>
>
>
> On 11/20/14, 4:43 PM, "Murthy Tanniru" <murthy at etudes.org> wrote:
>
>> We didn't test JForum with Sakai 10 yet. Check
>> tomcat/components/etudes-jforum-pack/WEB-INF/lib and tomcat/shared/lib
>> if you have multiple version of files.
>>
>> Thanks
>> Murthy
>> Etudes Inc
>> On 11/20/2014 1:21 PM, Kusnetz, Jeremy wrote:
>>> Has anyone gotten Jforum working in Sakai 10?  Etudes has Melete
>>> working for Sakai 10:
>>> http://etudes.org/help/developers/melete/download/
>>> which uses etudes-util 1.0.25
>>>
>>> But for Jforum it looks like the last version was for Sakai 2.9 using
>>> etudes-util 1.0.17
>>> http://etudes.org/help/developers/jforum/download/
>>>
>>> I was able to get Jforum to build with etudes-util 1.0.25 (we are also
>>> running Melete), but when I actually hit the tool in Sakai I get the
>>> following exceptions:
>>>
>>> 2014-11-20 15:16:13,908 ERROR ajp-bio-45259-exec-1
>>> org.etudes.jforum.JForum - an error occured in JForum.service():
>>> java.lang.ClassCastException:
>>> org.etudes.component.app.jforum.JForumUserServiceImpl cannot be cast to
>>> org.etudes.api.app.jforum.JForumUserService
>>> java.lang.ClassCastException:
>>> org.etudes.component.app.jforum.JForumUserServiceImpl cannot be cast to
>>> org.etudes.api.app.jforum.JForumUserService
>>> at
>>> org.etudes.jforum.ControllerUtils.refreshSession(ControllerUtils.java:726
>>> )
>>> at org.etudes.jforum.JForum.service(JForum.java:195)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatch
>>> er.java:748)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(Application
>>> Dispatcher.java:486)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispa
>>> tcher.java:411)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatc
>>> her.java:338)
>>> at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:138)
>>> at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:242)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatch
>>> er.java:748)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(Application
>>> Dispatcher.java:486)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispa
>>> tcher.java:378)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatc
>>> her.java:338)
>>> at
>>> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(Activ
>>> eToolComponent.java:513)
>>> at
>>> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(Skinnabl
>>> eCharonPortal.java:1536)
>>> at
>>> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.ja
>>> va:215)
>>> at
>>> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.jav
>>> a:98)
>>> at
>>> org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharo
>>> nPortal.java:901)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:455)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
>>> ionFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
>>> rChain.java:208)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve
>>> .java:220)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve
>>> .java:122)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorB
>>> ase.java:503)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
>>> 170)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
>>> 103)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j
>>> ava:116)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:42
>>> 1)
>>> at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
>>> at
>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abst
>>> ractProtocol.java:611)
>>> at
>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.ja
>>> va:314)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java
>>> :1110)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.jav
>>> a:603)
>>> at
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread
>>> .java:61)
>>> at java.lang.Thread.run(Thread.java:722)
>>>
>>> This message is private and confidential. If you have received it in
>>> error, please notify the sender and remove it from your system.
>>>
>>> _______________________________________________
>>> sakai-dev mailing list
>>> sakai-dev at collab.sakaiproject.org
>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>
>>> TO UNSUBSCRIBE: send email to
>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>> "unsubscribe"
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
> This message is private and confidential. If you have received it in error, please notify the sender and remove it from your system.
>

_______________________________________________
sakai-dev mailing list
sakai-dev at collab.sakaiproject.org
http://collab.sakaiproject.org/mailman/listinfo/sakai-dev

TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"


More information about the sakai-dev mailing list