...
Code Block |
---|
public class ExceptionsMethodLevelAction { @Action(value = "exception1", exceptionMappings = { @ExceptionMapping(exception = "java.lang.NullPointerException", result = "success", params = {"param1", "val1"}) }) public String run1() throws Exception { return null; } } |
Troubleshooting
Tips
Tip | ||
---|---|---|
| ||
Make sure the namespace of you action is matched by one of the locators. The rest of the namespace after the locator, will be the namespace of the action, and will be used to find the results. For example, a class called "ViewAction" in the package "my.example.actions.orders" will be mapped to the URL /orders/view.action, and the results must be under /WEB-INF/content/orders, like /WEB-INF/content/orders/view-success.jsp. |
...
Tip | ||
---|---|---|
| ||
The Convention plugin can generate a rather verbose output when set to debug mode for logging. Use "Trace" logging level if you are using the JDK logger. If you are using Log4J, you can do something like: log4j.logger.org.apache.struts2.convention=DEBUG |
Common Errors
- I get an error like "There is no Action mapped for namespace /orders and action name view.". This means that the URL /orders/view.action is not mapping to any action class. Check the namespace and the name of the action.
- I get an error like "No result defined for action "my.example.actions.orders.ViewAction and result success". This means that the action was mapped to the right URL, but the Convention plugin was unable to find a success result for it. Check that the result file exists, like /WEB-INF/content/orders/view-success.jsp.
Automatic configuration reloading
The Convention plugin can automatically reload configuration changes, made in classes the contain actions, without restarting the container. This is a similar behavior to the automatic xml configuration reloading. To enable this feature, add this to your struts.xml file:
Code Block | ||||
---|---|---|---|---|
| ||||
<constant name="struts.devMode" value="true"/>
<constant name="struts.convention.classes.reload" value="true" />
|
This feature is experimental and has not been tested on all container, and it is highly advised not to use it in production environments.
Configuration reference
Add a constant element to your struts config file to change the value of a configuration setting, like:
...