The diagram editor in the Structure101 Client is an ideal "sandbox" for discovering how your code-base is structured and how it might be better architected.
For example, you can ask Structure101 to create a high-level architecture diagram for you from the current code-base. This shows you the top-level layering, and any violations (dependencies that break the layering). To find out what package "struts2" depends on within package "dispatcher" you can click on the "+" for more detail.
This shows that the violation is due to a dependency from package "struts2" to package "dispacher.controller".
Expanding both these packages shows the class-to-class dependencies causing the problem.
In this case, we can repair the architecture violation by moving class Dispatcher to the struts2 package at the indicated level.
Moving this one class to a new package has removed the cyclic (upward) dependency and we can collapse the top level cells to see the cleaned up architecture.
Structure101 gives you a list of moved items that you can export as a task list, and/or apply as transformations to your Stucture101 model.