My first step would be to watch the network activity in Chrome developer tools [1]. Secondly you can set up remote debugging of your app [2].
[1] https://developer.chrome.com/devtools [2] http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/ On 13 September 2016 at 13:38, Stephen Cameron <steve.cameron...@gmail.com> wrote: > Hi, > > I have an unusual situation where the behaviour of what is apparently the > same configuration of my app differs on two different systems. When I > deploy my app to a clients server there is one action that produces no > effects whereas on my development machine it works as expected. > > The norma; effect is to add new objects to a collection, each click of the > action should create a new collection member. > > At the client site all other action buttons work as expected, only one has > the problem. All I can think that is unusual about this one compared to > all the others is that it has no parameters. > > I've made a copy of the database as the clients sit'e, imported that at > home and everything works. > > I am using the Isis security module, but I don't think that is causing a > problem, the action button is not greyed out as inactivated. > > I've used three different browsers at the client's site, all have the same > issue. > > The action is simple > > @Action > public RecurringActivity addNextScheduledActivity() { > if (getChildActivities().size() == 0) { > if (getStartDateTime() == null) { > container.warnUser("Please set 'Start date time' for this > Recurring Activity (as starting time from which to schedule more activity > events)"); > } else { > ActivityEvent obj = > container.newTransientInstance(ActivityEvent.class); > obj.setParentActivity(this); > obj.setName(getName()); > obj.setAbbreviatedName(getAbbreviatedName()); > //set time one second ahead for comparison inequality > obj.setStartDateTime(getStartDateTime().plusSeconds(1)); > getChildActivities().add(obj); > container.persistIfNotAlready(obj); > container.flush(); > } > } else { > // find last event from which to schedule next > // first should be last in chronological order > DateTime origin = > getChildActivities().first().getStartDateTime(); > ActivityEvent obj = > container.newTransientInstance(ActivityEvent.class); > obj.setParentActivity(this); > obj.setName(getName()); > obj.setAbbreviatedName(getAbbreviatedName()); > switch (getPeriodicity()) { > case DAILY: > obj.setStartDateTime(origin.plusDays(1)); > break; > case WEEKLY: > obj.setStartDateTime(origin.plusDays(7)); > break; > case FORTNIGHTLY: > obj.setStartDateTime(origin.plusDays(14)); > break; > case MONTHLY: > obj.setStartDateTime(origin.plusDays(28)); > break; > case BIMONTHLY: > obj.setStartDateTime(origin.plusDays(56)); > break; > } > getChildActivities().add(obj); > container.persistIfNotAlready(obj); > container.flush(); > } > return this; > } > > I can start adding some debug messages to this code, but is there a smarter > way to find out happens at the client and server sides? > > I guess one distinct difference is that in my development environment the > client and server are on the same machine, but in deployment they aren't. > > Thanks for any advice. > > Steve Cameron >