• MarshalException calling workflow services (openkm 5.1)

  • Do you want to create a native client or integrate with third party applications: webservices are the solution.
Do you want to create a native client or integrate with third party applications: webservices are the solution.
Forum rules: Please, before asking something see the documentation wiki or use the search feature of the forum. And remember we don't have a crystal ball or mental readers, so if you post about an issue tell us which OpenKM are you using and also the browser and operating system version. For more info read How to Report Bugs Effectively.
 #18789  by pmbsa
 
Hi, I seem to be having issues with calling workflow services. If I try to do anything against workflow (like simply getting the Process Instance for example I get the following exception
Code: Select all
2012-10-18 09:29:27,345 ERROR [org.jboss.wsf.stack.jbws.RequestHandlerImpl] Error processing web service request
org.jboss.ws.WSException: javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: class com.openkm.bean.form.Button nor any of its super class is known to this context.
javax.xml.bind.JAXBException: class com.openkm.bean.form.Button nor any of its super class is known to this context.]
	at org.jboss.ws.WSException.rethrow(WSException.java:68)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:325)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:201)
	at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:134)
	at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:679)
Caused by: javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
 - with linked exception:
[com.sun.istack.SAXException2: class com.openkm.bean.form.Button nor any of its super class is known to this context.
I am able to authenticate without a problem but as soon as I try to do anything again the workflow there is a problem... It appears to be only at the
point where a response is to be generated. The request actually doe s the work (in the instance where I send a signal to a process instance for example, the
signal is sent but the service fails to respond because of this error.

any assistance would be appreciated. I am using OpenKM 5.1 community edition
thanks
Paul
 #18795  by pmbsa
 
On further investigation, it seems actually as though there is an issue with having any formelements in your workflow. I have added
Code: Select all
@XmlSeeAlso({com.openkm.bean.form.FormElement.class
			,com.openkm.bean.form.Button.class
			,com.openkm.bean.form.Input.class
			,com.openkm.bean.form.Text.class
			,com.openkm.bean.form.CheckBox.class
			,com.openkm.bean.form.TextArea.class})
to the ProcessInstance class and now I at least get a response from the service (soapUI works fine after that). The issue now is that I cant seem to unmarshall the thing for some reason (even though I have generated a new client jar).
Is this a known bug in the OKMWorkflow service or am I doing something horribly wrong here. Its seems very odd that I would be the only person struggling with this.

thanks
Paul
 #18822  by pmbsa
 
Hi, apologies, I thought I was being explicit with my description there.. Yes, I am calling workflow through the webservice api.
Any method that would result in a processinstance being returned will not marshall correctly if you have formelements as variables
in the workflow at all. I am simply calling getProcessInstance.

thanks
Paul

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.