MarshalException

69 views
Skip to first unread message

Dylan

unread,
Feb 25, 2008, 12:47:53 AM2/25/08
to Bookmarks Portlet
Hi,

When trying to run the unmarshall method found in the MarshallUtils
class I receive a MarshalException:

org.exolab.castor.xml.MarshalException: The class for the root element
'xbel' could not be found.{File: [not available]; line: 2; column: 21}

This is being generated by a SAXException: The class for the root
element 'xbel' could not be found.

My research indicates that it's a Castor issue to do with pre-loading
class descriptors for a package, but your code has already tackled
this with the addPackage method. So I've been stuck for a while now,
I've checked that the .castor.cdr files exist in both uk/ac/bris/
portlet/bookmarks/xbel/model and uk/ac/bris/portlet/bookmarks/xbel/
model/types.

Running uPortal 2.5.3 on Apache Tomcat/5.5.25

Regards,

Dylan

Mark McLaren

unread,
Feb 25, 2008, 3:33:02 AM2/25/08
to bookmark...@googlegroups.com
Hi Dylan,

Sorry you are having difficulties. Could you post the full stacktrace
so that I can pinpoint what might be happening.

Also could you explain a bit more about when this is happening, for
example, this error could be something to do with the "default" user
is not being found in the database (at it's simplest this should
contain "<xbel />").

Thanks,

Mark

--
"Paradoxically, the more time saving abstractions you are using the
more you actually have to know." - Simon Willison

Dylan

unread,
Feb 25, 2008, 5:28:47 PM2/25/08
to Bookmarks Portlet
Hi Mark thanks for the quick reply.

The database currently contains one entry; "default" user and the xbel
string. So at the moment, the contents of default.xml are being passed
around as the xbelString. The error occurs when the string is
unmarshalled via the public Xbel unmarshall(String xbelString) method
found in the MarshallUtils class. The full stack trace is as follows:

org.exolab.castor.xml.MarshalException: The class for the root element
'xbel' could not be found.{File: [not available]; line: 2; column: 21}
at
org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:
755)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:721)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:610)
at
uk.ac.bris.portlet.bookmarks.xbel.MarshallUtils.unmarshall(MarshallUtils.java:
39)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
37)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
40)
at
uk.ac.bris.portlet.bookmarks.struts.actions.populateEdit.execute(populateEdit.java:
53)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:
413)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
225)
at
org.apache.portals.bridges.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:
51)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:
1858)
at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
uk.ac.bris.portlet.bookmarks.web.SimpleAuthFilter.doFilter(SimpleAuthFilter.java:
20)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
151)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
703)
at org.apache.jk.common.ChannelSocket
$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.xml.sax.SAXException: The class for the root element
'xbel' could not be found.
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1518)
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1353)
at
org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:
1197)
at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:
1862)
at org.apache.xerces.framework.XMLDocumentScanner
$ContentDispatcher.dispatch(XMLDocumentScanner.java:1005)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:
381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:
1035)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:709)
... 30 more
Caused by: org.xml.sax.SAXException: The class for the root element
'xbel' could not be found.
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1518)
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1353)
at
org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:
1197)
at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:
1862)
at org.apache.xerces.framework.XMLDocumentScanner
$ContentDispatcher.dispatch(XMLDocumentScanner.java:1005)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:
381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:
1035)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:709)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:610)
at
uk.ac.bris.portlet.bookmarks.xbel.MarshallUtils.unmarshall(MarshallUtils.java:
39)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
37)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
40)
at
uk.ac.bris.portlet.bookmarks.struts.actions.populateEdit.execute(populateEdit.java:
53)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:
413)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
225)
at
org.apache.portals.bridges.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:
51)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:
1858)
at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
uk.ac.bris.portlet.bookmarks.web.SimpleAuthFilter.doFilter(SimpleAuthFilter.java:
20)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
151)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
703)
at org.apache.jk.common.ChannelSocket
$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.xml.sax.SAXException: The class for the root element
'xbel' could not be found.
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1518)
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:
1353)
at
org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:
1197)
at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:
1862)
at org.apache.xerces.framework.XMLDocumentScanner
$ContentDispatcher.dispatch(XMLDocumentScanner.java:1005)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:
381)
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:
1035)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:709)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:610)
at
uk.ac.bris.portlet.bookmarks.xbel.MarshallUtils.unmarshall(MarshallUtils.java:
39)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
37)
at
uk.ac.bris.portlet.bookmarks.database.BookmarksFacade.getBookmarksXbel(BookmarksFacade.java:
40)
at
uk.ac.bris.portlet.bookmarks.struts.actions.populateEdit.execute(populateEdit.java:
53)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:
413)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
225)
at
org.apache.portals.bridges.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:
51)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:
1858)
at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
uk.ac.bris.portlet.bookmarks.web.SimpleAuthFilter.doFilter(SimpleAuthFilter.java:
20)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
151)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
703)
at org.apache.jk.common.ChannelSocket
$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)

Regards,

Dylan

Dylan

unread,
Feb 25, 2008, 10:43:14 PM2/25/08
to Bookmarks Portlet
Hi Mark,

I went back to basics and came across a very basic problem that was
self inflicted. After modifying your build.xml to suit my environment,
I commented out the instruction to copy all .cdr files to their
appropriate classes directory. Doh!

In trying to debug I made a few changes, I created a new function in
BookmarksFacade that simply returns the xbel string from the database,
the bookmarksString is still stored in requestScope, but is
transformed and validated using the core xml tags. I'm still getting
my head around Castor and the marshalling/unmarshalling but I guess
the disadvantage of my approach with the core tags is that I have no
way to validate the Xbel. Is this correct or are there other reasons
to use the unmarshalling and marshalling of the xml?

I'm off to play with all the new editing features now available to me.

Cheers,

Dylan
> ...
>
> read more »

Dylan

unread,
Feb 26, 2008, 8:02:28 PM2/26/08
to Bookmarks Portlet
Reply all
Reply to author
Forward
0 new messages