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
>

Reply via email to