[JBoss Seam] - Empty pages using Facelets
by monkeyden
Has anyone run into an issue where the backing is, by all accounts, doing it's work correctly but Facelets/JSF renders the page without any data? I can't reproduce this manually but can do it consistently using JMeter. I have tried to following, to ensure that everything is working correctly:
1. Log an error if the object is null. Message is never printed, so the backing bean is good
2. Switch from outjection of the data object to accessor on the backing bean.
@Out Employee employee; is replaced by getEmployee(), using #{bean.employee} in the view
3. Used facelets with and without <ui:param>
I'm pretty sure this is a Facelets issue but wondered about anyone else's experiences.
Thanks
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072682#4072682
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072682
18Â years, 10Â months
[JBoss jBPM] - Actions and async=
by jeffj55374
org.jbpm.JbpmException: token '18547' can't be locked by 'job[18548]' cause it's already locked by 'token[18547]'
Full stack trace, process definition, action handler are all below.
Environment
jBPM 3.2.1
| Standalone Java 1.6 (no appserver)
| Actions and async="true" don't mix.
| JobExecutor is configured for one thread.
| Hibernate 3.2.4.sp1
| Oracle 10g
|
|
| Summary:
| 1. Token is signaled to start the process.
| 2. Token transitions to node1 from the start node.
| 3. Node one has an action handler defined so Node.execute(...) calls GraphElement.executeAction() which locks the token.
| 4. The action handler calls ctx.leaveNode after it does its work. (Section 9.5 of the user guide states: "Note the difference
| between an action that is placed in an event versus an action that is placed in a node. Actions that are put in an event
| are executed when the event fires. Actions on events have no way to influence the flow of control of the process.
| It is similar to the observer pattern. On the other hand, an action that is put on a node has the responsibility of propagating the execution.
| 5. ctx.leaveNode on Node1 ultimately results in Node.enter() being called on Node2
| 6. Since Node2 is an async node, rather than executing the node, the code prepares for an async continuation.
| 7. After sending the message the code attempts to lock the token, but it already locked as a result of #3
| // execute the node
| if (isAsync) {
| ExecuteNodeJob job = createAsyncContinuationJob(token);
| MessageService messageService = (MessageService) Services.getCurrentService(Services.SERVICENAME_MESSAGE);
| messageService.send(job);
| token.lock(job.toString()); // ** THIS IS THE PROBLEM LINE!!!! ***
| } else {
| execute(executionContext);
| }
|
| The conflict:
| Javadoc for Token.lock():
| /**
| * locks a process instance for further execution. A locked token
| * cannot continue execution. This is a non-persistent
| * operation. This is used to prevent tokens being propagated during
| * the execution of actions.
| * @see #unlock(String)
| */
| public void lock(String lockOwnerId) {
|
| But Section 9.5 of the user's guide says that an action is responsible for propagating the execution, but the token is locked in an attempt to propagate it.
|
| I'm currently trying to understand the design and come up with a solution to allow my process to run as designed.
| What I don't understand yet is why the token is used to prevent propagation or why the code in Node.execute is trying to lock the token with the job id.
| Should the code unlock the token and then lock it with the job? Is the token lock really necessary?
| If I remove the action fron Node 1, things work fine.
|
| Possibly related to http://jira.jboss.com/jira/browse/JBPM-983. Similar, but a little different twist
|
| Any ideas?
|
| Once I research this a little more, I might submit a bug, but I'd like a little feedback to verify that I'm on the right track.
|
| Thanks for your help.
|
| Full stack trace:
|
| org.jbpm.JbpmException: token '18547' can't be locked by 'job[18548]' cause it's already locked by 'token[18547]'
| at org.jbpm.graph.exe.Token.lock(Token.java:646)
| at org.jbpm.graph.def.Node.enter(Node.java:316)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$dc89a302.enter()
| at org.jbpm.graph.def.Transition.take(Transition.java:151)
| at org.jbpm.graph.def.Node.leave(Node.java:393)
| at org.jbpm.graph.def.Node.leave(Node.java:357)
| at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:120)
| at com.digitalriver.mds.jbpm.SampleActionHandler.execute(SampleActionHandler.java:46)
| at org.jbpm.graph.def.Action.execute(Action.java:122)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Action$$EnhancerByCGLIB$$5863de36.execute()
| at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255)
| at org.jbpm.graph.def.Node.execute(Node.java:338)
| at org.jbpm.graph.def.Node.enter(Node.java:318)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$dc89a302.enter()
| at org.jbpm.graph.def.Transition.take(Transition.java:151)
| at org.jbpm.graph.def.Node.leave(Node.java:393)
| at org.jbpm.graph.node.StartState.leave(StartState.java:70)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
| at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$dc89a302.leave()
| at org.jbpm.graph.exe.Token.signal(Token.java:194)
| at org.jbpm.graph.exe.Token.signal(Token.java:139)
| at com.digitalriver.proto.StandaloneSample.runStandaloneSample(StandaloneSample.java:89)
| at com.digitalriver.proto.StandaloneSample.run(StandaloneSample.java:130)
| at com.digitalriver.proto.StandaloneSample.main(StandaloneSample.java:40)
|
|
|
|
| The Job Executor bean config
|
| <bean id="jbpm.job.executor" class="org.jbpm.job.executor.JbpmJobExecutor">
| | <property name="jbpmConfiguration" ref="jbpmConfiguration" />
| | <property name="name" value="JbpmJobExector"/>
| | <property name="nbrOfThreads" value="1"/>
| | <property name="idleInterval" value="5000"/>
| | <property name="maxIdleInterval" value="300000"/>
| | <property name="historyMaxSize" value="20"/>
| | <property name="maxLockTime" value="600000"/> <!-- 10 minutes -->
| | <property name="lockMonitorInterval" value="60000"/> <!-- 1 minute -->
| | <property name="lockBufferTime" value="5000"/> <!-- 5 seconds -->
| | </bean>
|
|
| The Process Definition
|
| <?xml version="1.0" encoding="UTF-8"?>
| |
| | <process-definition
| | xmlns="" name="StandaloneSample">
| | <start-state name="start">
| | <transition name="" to="node1"></transition>
| | </start-state>
| | <end-state name="end1"></end-state>
| | <node name="node1">
| | <action class="com.digitalriver.mds.jbpm.SampleActionHandler"></action>
| | <transition name="" to="node2"></transition>
| | </node>
| | <node async="true" name="node2">
| | <action class="com.digitalriver.mds.jbpm.SampleActionHandler"></action>
| | <transition name="" to="end1"></transition>
| | </node>
| | </process-definition>
|
| The action handler
| package com.digitalriver.mds.jbpm;
| |
| | /** Copyright (c) Digital River, Inc. All rights reserved. 2007
| | * Filename: SampleActionHandler.java
| | * Author: @author
| | */
| |
| |
| | import java.io.FileWriter;
| |
| | import org.apache.commons.logging.Log;
| | import org.apache.commons.logging.LogFactory;
| | import org.jbpm.context.exe.ContextInstance;
| | import org.jbpm.graph.def.ActionHandler;
| | import org.jbpm.graph.exe.ExecutionContext;
| |
| | /**
| | * @author jpjohnson
| | *
| | */
| | public class SampleActionHandler
| | implements ActionHandler {
| |
| | /**
| | *
| | */
| | private static final long serialVersionUID = 1L;
| | @SuppressWarnings("unused")
| | private static final Log log = LogFactory.getLog(SampleActionHandler.class);
| |
| | /* (non-Javadoc)
| | * @see org.jbpm.graph.def.ActionHandler#execute(org.jbpm.graph.exe.ExecutionContext)
| | */
| | public void execute(final ExecutionContext ctx) throws Exception
| | {
| | log.debug("JPJ execute called for task " + ctx.getNode().getName() +
| | " action " + ctx.getAction().getName());
| |
| | ContextInstance contextInstance = ctx.getProcessInstance().getContextInstance();
| | Integer id = (Integer) contextInstance.getVariable("MyID");
| |
| | FileWriter file = new FileWriter("Node-" + ctx.getNode().getName() + " PI-" +
| | ctx.getProcessInstance().getId() + ".txt");
| | file.write("Test output: Process ID " + id);
| | file.close();
| |
| | ctx.leaveNode();
| | // ctx.getToken().signal();
| | }
| |
| | }
| |
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072679#4072679
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072679
18Â years, 10Â months
[JBoss Messaging] - need help with JBM example for HTTP - build fails
by geeky2
hello,
environment: suse 10.1, JBAS 4.2.1, JBM 1.4.0CR1
i just installed JBM and am running the examples: i am not able to run the HTTP example:
when i do a build i get the following:
| mark@gecko1:~/jbm/examples/http> ant
| Buildfile: build.xml
|
| identify:
| [echo] ############################################################################
| [echo] # Running the HTTP example #
| [echo] ############################################################################
| [echo] The queue: testQueue
| [echo] The client jar: ../..//jboss-messaging-client.jar
|
| sanity-check:
|
| init:
| [mkdir] Created dir: /home/mark/jboss-messaging-1.4.0.CR1/examples/http/output/classes
| [mkdir] Created dir: /home/mark/jboss-messaging-1.4.0.CR1/examples/common/output/classes
|
| compile:
| [javac] Compiling 5 source files to /home/mark/jboss-messaging-1.4.0.CR1/examples/common/output/classes
| [javac] Compiling 1 source file to /home/mark/jboss-messaging-1.4.0.CR1/examples/http/output/classes
|
| deploy:
|
| BUILD FAILED
| /home/mark/jboss-messaging-1.4.0.CR1/examples/http/build.xml:77: Warning: Could not find file /home/mark/src/etc/remoting/remoting-http-service.xml to copy.
|
| Total time: 20 seconds
| mark@gecko1:~/jbm/examples/http> echo $JBOSS_HOME
| /home/mark/jboss-4.2.1.GA
|
i have looked at the build.xml file for the http example. line 77 shows this:
| <target name="deploy">
| <copy file="../../../src/etc/remoting/remoting-http-service.xml"
| todir="${jboss.home}/server/${jboss.configuration}/deploy"/>
| <copy file="./etc/messaging-http-service.xml"
| todir="${jboss.home}/server/${jboss.configuration}/deploy"/>
| <antcall target="sleep"><param name="sleep.interval" value="10"/></antcall>
| </target>
|
i cannot find the
| remoting-http-service.xml
|
file anywhere.
can someone tell me where this file is at?
i have checked the forums for possible related problems and or similar questions - but to no avail
any help would be appreciated.
thx
mark
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4072673#4072673
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4072673
18Â years, 10Â months