[jboss-user] [JBoss Seam] - Remoting - Callback method not being called
mcrandall
do-not-reply at jboss.com
Fri Feb 1 09:12:01 EST 2008
I'm a newbie to the SEAM framework so please be patient with me.
I have successfully used the remoting (AJAX) feature. However, when I have an entity bean (generated by seam gen) that has join columns, the results are returned but the callback method does not get called. Is there something wrong with how I am handling the result set in my component?
Here is my entity bean:
@Entity
| @Table(name = "playbackevent")
| public class Playbackevent implements java.io.Serializable {
|
| private String playbackEventId;
| private Transaction transaction;
| private Enduser enduser;
| private Applicationversion applicationversion;
| private Date eventTime;
| private String eventType;
| private String image;
| private String machineId;
| private String machineName;
|
| public Playbackevent() {
| }
|
| public Playbackevent(String playbackEventId, Date eventTime, String image) {
| this.playbackEventId = playbackEventId;
| this.eventTime = eventTime;
| this.image = image;
| }
|
| public Playbackevent(String playbackEventId, Transaction transaction,
| Enduser enduser, Applicationversion applicationversion,
| Date eventTime, String eventType, String image, String machineId,
| String machineName) {
| this.playbackEventId = playbackEventId;
| this.transaction = transaction;
| this.enduser = enduser;
| this.applicationversion = applicationversion;
| this.eventTime = eventTime;
| this.eventType = eventType;
| this.image = image;
| this.machineId = machineId;
| this.machineName = machineName;
| }
|
| @Id
| @Column(name = "PlaybackEventID", unique = true, nullable = false, length = 32)
| @NotNull
| @Length(max = 32)
| public String getPlaybackEventId() {
| return this.playbackEventId;
| }
|
| public void setPlaybackEventId(String playbackEventId) {
| this.playbackEventId = playbackEventId;
| }
|
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "TransactionID")
| public Transaction getTransaction() {
| return this.transaction;
| }
|
| public void setTransaction(Transaction transaction) {
| this.transaction = transaction;
| }
|
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "EndUserID")
| public Enduser getEnduser() {
| return this.enduser;
| }
|
| public void setEnduser(Enduser enduser) {
| this.enduser = enduser;
| }
|
| @ManyToOne(fetch = FetchType.LAZY)
| @JoinColumn(name = "ApplicationVersionID")
| public Applicationversion getApplicationversion() {
| return this.applicationversion;
| }
|
| public void setApplicationversion(Applicationversion applicationversion) {
| this.applicationversion = applicationversion;
| }
|
| @Temporal(TemporalType.TIMESTAMP)
| @Column(name = "EventTime", nullable = false, length = 0)
| @NotNull
| public Date getEventTime() {
| return this.eventTime;
| }
|
| public void setEventTime(Date eventTime) {
| this.eventTime = eventTime;
| }
|
| @Column(name = "EventType", length = 13)
| @Length(max = 13)
| public String getEventType() {
| return this.eventType;
| }
|
| public void setEventType(String eventType) {
| this.eventType = eventType;
| }
|
| @Column(name = "Image", nullable = false, length = 1000)
| @NotNull
| @Length(max = 1000)
| public String getImage() {
| return this.image;
| }
|
| public void setImage(String image) {
| this.image = image;
| }
|
| @Column(name = "MachineID", length = 32)
| @Length(max = 32)
| public String getMachineId() {
| return this.machineId;
| }
|
| public void setMachineId(String machineId) {
| this.machineId = machineId;
| }
|
| @Column(name = "MachineName", length = 500)
| @Length(max = 500)
| public String getMachineName() {
| return this.machineName;
| }
|
| public void setMachineName(String machineName) {
| this.machineName = machineName;
| }
|
| }
|
Here is my component:
@Stateful
| @Name("playerAction")
| public class PlayerAction implements Player{
|
| @In EntityManager entityManager;
|
| private List<Playbackevent> events;
|
| public List<Playbackevent> displayEvents() {
| List playbackEvents = entityManager.createQuery(
| "from Playbackevent p")
| .getResultList();
| events = new ArrayList<Playbackevent>();
| for (int i = 0; i < playbackEvents.size(); i++) {
| Playbackevent bean = (Playbackevent) playbackEvents.get(i);
| events.add(bean);
| }
| return events;
| }
|
| @Destroy @Remove
| public void destroy() { }
|
| }
|
Here is the interface:
@Local
| public interface Player {
|
| @WebRemote
| public List<Playbackevent> displayEvents();
|
| public void destroy();
|
| }
My XHTML page:
| <s:remote include="playerAction"/>
|
| <script type="text/javascript">
| //<![CDATA[
| Seam.Remoting.setDebug(true);
|
| var playAction = Seam.Component.getInstance("playerAction");
|
| function displayEvents() {
| playAction.displayEvents(displayEventCallback);
| }
|
|
| function displayEventCallback (result) {
| if (result) {
| var eTable = document.getElementById("eventTable");
| for (i=0;i<result.length;i++){
| var row = eTable.insertRow(0);
| var cell = row.insertCell(0);
| var eventId = result.getImage();
| cell.innerHTML = eventId;
| }
| } else {
| alert("No results.");
| }
| }
|
| // ]]>
| </script>
| <table id="eventTable">
| </table>
|
Any help is greatly appreciated.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4125528#4125528
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4125528
More information about the jboss-user
mailing list