Page 1 of 1

Unsupported major.minor version 51.0 en workflow

PostPosted:Wed Jun 20, 2012 10:33 pm
by kaumichan
Hola, soy nueva en esto de openKM, estoy trabajando en un workflow, al inicializar mi workflow me aparece el sigueinte error : Error de comunicación con el servidor [callbackRunProcessDefinition]

verificando en el log me aparece el siguiente error

Code: Select all
 012-06-20 16:41:30,950 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/OpenKM]] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void com.openkm.frontend.client.service.OKMWorkflowService.runProcessDefinition(java.lang.String,double,java.util.List) throws com.openkm.frontend.client.OKMException' threw an unexpected exception: java.lang.UnsupportedClassVersionError: com/CaptureUserID/action/CaptureUser : Unsupported major.minor version 51.0
	at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	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:662)
Caused by: java.lang.UnsupportedClassVersionError: com/CaptureUserID/action/CaptureUser : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
	at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:111)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:140)
	at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:125)
	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:597)
	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
	at org.jbpm.instantiation.Delegation_$$_javassist_6.getInstance(Delegation_$$_javassist_6.java)
	at org.jbpm.graph.def.Action.execute(Action.java:121)
	at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:259)
	at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:215)
	at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:185)
	at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:169)
	at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
	at org.jbpm.graph.def.Node_$$_javassist_100.fireEvent(Node_$$_javassist_100.java)
	at org.jbpm.graph.exe.Token.signal(Token.java:189)
	at org.jbpm.graph.exe.Token.signal(Token.java:140)
	at com.openkm.module.direct.DirectWorkflowModule.runProcessDefinition(DirectWorkflowModule.java:326)
	at com.openkm.api.OKMWorkflow.runProcessDefinition(OKMWorkflow.java:110)
	at com.openkm.frontend.server.OKMWorkflowServlet.runProcessDefinition(OKMWorkflowServlet.java:100)
	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:597)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
	... 24 more
he verificado la documentación, foros etc y encuentro que es un problema con las versiones del JRE, pero tanto el servidor como mi eclipse tienen la versión 1.6, entonces no se que estoy haciendo mal. les adjunto el codigo de mi workflow

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="SolicitudPermisos">
<start-state name="Inicio">
		<transition to="DecisionJefe" name="trDecisionJefe"></transition>
		<event type="before-signal">
			<action name="Capturar Usuario " class="com.CaptureUserID.action.CaptureUser">
				<userID></userID>
			</action>
		</event>
  </start-state>
  <task-node name="DecisionJefe">
    <task name="TomarDecision">
      <assignment actor-id="adrianap"></assignment>
			<controller></controller>
    </task>
    <transition to="EvaluarSolicitud" name="trEvaluarSolicitud"></transition>
  </task-node>
  <decision name="EvaluarSolicitud" expression="#{(decision=='rechazar') ? 'Rechazado':'Aprobado'}">
    <transition to="DecisionPMO" name="Aprobado"></transition>
    <transition to="Fin Rechazado" name="Rechazado"></transition>
  </decision>

	<task-node name="DecisionPMO">
		<task name="TomarDecisionPMO">
			<assignment actor-id="pmowf"></assignment>
		</task>
		<transition to="EvaluarSolicitudPMO" name="trEvaluarSolicitudPMO"></transition>
	</task-node>

	<decision name="EvaluarSolicitudPMO"  expression="#{(decisionPmo=='rechazar') ?'trPMORechazado':'trPMOAprobado'}">
		<transition to="Fin Rechazado" name="trPMORechazado"></transition>
		<transition to="Fin Aprobado" name="trPMOAprobado"></transition>
	</decision>
  <end-state name="Fin Aprobado"></end-state>

	<end-state name="Fin Rechazado"></end-state>

</process-definition>
y el código de mi handler
Code: Select all
package com.CaptureUserID.action;

import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;

public class CaptureUser implements ActionHandler {
private static final long serialVersionUID = 1L;
	
	String userID;
	
	public void execute(ExecutionContext context) throws Exception {
		context.getContextInstance().setVariable("userID", context.getJbpmContext().getActorId());
	}

}

Espero puedan ayudarme. Saludos y gracias

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Thu Jun 21, 2012 5:02 pm
by kaumichan
Hola, he revisado en distintos foros y no he podido solucionar el error, entonces decidí capturar el usuario inicial utilizando un swinlane, cuando reviso en open km desde el administrador la instancia ejecutada del proceso, en la tarea Enviar solicitud le aparece asociado el id de usuario que inicializo el workflow, pero no he podido hacer que luego le sea asignada una tarea distinta a este usuario. la tarea en concreto es notificación rechazo y estoy asignando el usuario igual que ne la tarea inicial.
Code: Select all
<task-node name="Notificacion Rechazo">
		<task name="AcaptarNotificacionRechazo" swimlane="initiator"></task>
pero cuando verifico la instancia del proceso en esta tarea no hay ningún usuario asignado, espero puedan darme una guía sobre que estoy haciendo mal, adjunto le codigo completo del proceso
Code: Select all
 <?xml version="1.0" encoding="UTF-8"?>
<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="SolicitudPermisos">
  <start-state name="Inicio">
		<transition to="DecisionJefe" name="trDecisionJefe"></transition>
		<task  name="Enviar solicitud " swimlane="initiator" ></task>
  </start-state>
  
  <task-node name="DecisionJefe">
    <task name="TomarDecision">
      <assignment actor-id="adrianap"></assignment>			
    </task>
    <transition to="EvaluarSolicitud" name="trEvaluarSolicitud"></transition>
  </task-node>
  
  <decision name="EvaluarSolicitud" expression="#{(decision=='0') ? 'Rechazado':'Aprobado'}">
    <transition to="DecisionPMO" name="Aprobado"></transition>
    <transition to="Notificacion Rechazo" name="Rechazado"></transition>
  </decision>
  
	<task-node name="DecisionPMO">
		<task name="TomarDecisionPMO">
			<assignment actor-id="pmowf"></assignment>
		</task>
		<transition to="EvaluarSolicitudPMO" name="trEvaluarSolicitudPMO"></transition>
	</task-node>

	<decision name="EvaluarSolicitudPMO"  expression="#{(decisionPmo=='0') ?'trPMORechazado':'trPMOAprobado'}">
		<transition to="Notificacion Rechazo" name="trPMORechazado"></transition>
		<transition to="Notificacion Aprobacion" name="trPMOAprobado"></transition>
	</decision>
  
	<task-node name="Notificacion Rechazo">
		<task name="AcaptarNotificacionRechazo" swimlane="initiator"></task>
		<transition to="Decision Funcionario" name="trDecisionFuncionario"></transition>
		
		 <controller>
            <variable access="read" name="start date"></variable>
            <variable access="read" name="duration"></variable>
            <variable access="read,write" name="info"></variable>
         </controller>
	
	</task-node>

	<task-node name="Notificacion Aprobacion">
		<task name="AceptarNotificacionAprobacion">
			<assignment expression=""></assignment>
		</task>
		<transition to="Fin Aprobado" name="trFinAprobado"></transition>
	</task-node>

	<decision name="Decision Funcionario" expression="#{(decisionfuncionario=='1') ? 'toDecisionJefe':'trFinRechazado'}">
		<transition to="Fin Rechazado" name="trFinRechazado"></transition>
		<transition to="DecisionJefe" name="trDecisionJefe"></transition>
	</decision>
  <end-state name="Fin Aprobado"></end-state>

	<end-state name="Fin Rechazado"></end-state>
	
	<assignment actor-id="initiator"></assignment>


</process-definition>

Saludos y gracias

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Sun Jun 24, 2012 10:33 am
by jllort
Explicanos un poco que quieres hacer en la tarea inicio con la clase com.CaptureUserID.action.CaptureUser

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Mon Jun 25, 2012 2:23 pm
by kaumichan
Hola, lo que quiero hacer es capturar el usuario que inicia la instancoa del workflow para utilizarlo en una tarea posterior.


Saludos Gracias!!!!

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Wed Jun 27, 2012 11:20 am
by jllort
Tienes que crear un swimlane que se llame initiator ( es especial ) y por defecto al arrancar el workflow aqui se pone el usuario que lo ha arrancado. Lo tienes que poner en el start node y en la tarea que quieres que ejecute el mismo usuario que ha arrancado el workflow

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Tue Jul 10, 2012 3:59 pm
by kaumichan
Gracias por tu respuesta, de casualidad tienes algún ejemplo de como definir ese swimlan, yo lo estoy definiendo de esta manera
Code: Select all
<start-state name="Inicio">
      <transition to="DecisionJefe" name="trDecisionJefe"></transition>          
      <task  name="Enviar solicitud " swimlane="initiator" ></task>
</start-state>
y estoy llamandolo en la tarea que le corresponde de la misma forma

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Fri Jul 20, 2012 4:13 pm
by jllort
Esto tiene que ir así:
Code: Select all
<start-state name="start-state1">
	<task swimlane="initiator"></task>
	<transition to="decision1"></transition>
</start-state>

<task-node name="user">
	<task name="user" swimlane="initiator"></task>
	<transition to="reviser" name="review"></transition>
</task-node>

Re: Unsupported major.minor version 51.0 en workflow

PostPosted:Mon Jul 23, 2012 8:35 pm
by kaumichan
Gracias !!!