Re: Help with Exception handling
From: David G. Friedman [EMAIL PROTECTED] Now, on the JSP issues, since you're trading control over to JSP's, can't you list the exception in your web.xml configuration file? See the 'exception-type' in the solution under this url: http://www.jguru.com/faq/view.jsp?EID=457102 Probably, but then I couldn't use a Tiles definition for the 'path' it should go to when the Exception is thrown. Although right now I'm just using 'error.jsp' it eventually needs to be a Tiles def. From: Bill Siggelkow Struts exception handling *does* work correctly when it comes to inheritance; and your configuration looks correct. First, check the FQN (fully-qualified name) of your exception Bill wins the prize. Amazing what a good night's sleep and another set of eyes will do for a problem... I missed one of the pieces of the package name. And it works! Thanks also to Erik for explaining the 'key' attribute. :) -- Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Help with Exception handling
I know I've tried this before, but so far I haven't gotten all the pieces properly arranged so it works. :/ I currently have code like this in an Action: try { benId = loginDAO.getBenId( asurite ); } catch ( TermsAcceptanceException ex ) { return mapping.findForward( terms ); } In struts-config.xml: action path=/denLogin type=edu.asu.vpia.struts.DevilsDenLoginAction name=loginForm scope=request validate=true input=den.login.page forward name=success path=den.login.success/ forward name=terms path=den.terms.agreement /action It's my impression that I don't need to catch the exception, that I *should* be able to let Action.execute(...) throw it and the framework can be configured to deal appropriately with it. So I took out this line: forward name=terms path=den.terms.agreement And put in: exception type=edu.asu.dao.DAOException path=/WEB-INF/error.jsp key=error.dao.exception/ And I just get a JSP with a stack trace. Although TermsAcceptanceException extends DAOException, it doesn't go to error.jsp. Two questions... what is the 'key' attribute of exception used for, and can anyone tell what I'm doing wrong? Thanks! -- Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Help with Exception handling
Wendy, This looks interesting. What is 'den.login.success'? Is it a key in a resource file or a java class or just a flat file with a dot-notation name? Regards, David -Original Message- From: Wendy Smoak [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 17, 2004 6:32 PM To: Struts Users Mailing List Subject: Help with Exception handling I know I've tried this before, but so far I haven't gotten all the pieces properly arranged so it works. :/ I currently have code like this in an Action: try { benId = loginDAO.getBenId( asurite ); } catch ( TermsAcceptanceException ex ) { return mapping.findForward( terms ); } In struts-config.xml: action path=/denLogin type=edu.asu.vpia.struts.DevilsDenLoginAction name=loginForm scope=request validate=true input=den.login.page forward name=success path=den.login.success/ forward name=terms path=den.terms.agreement /action It's my impression that I don't need to catch the exception, that I *should* be able to let Action.execute(...) throw it and the framework can be configured to deal appropriately with it. So I took out this line: forward name=terms path=den.terms.agreement And put in: exception type=edu.asu.dao.DAOException path=/WEB-INF/error.jsp key=error.dao.exception/ And I just get a JSP with a stack trace. Although TermsAcceptanceException extends DAOException, it doesn't go to error.jsp. Two questions... what is the 'key' attribute of exception used for, and can anyone tell what I'm doing wrong? Thanks! -- Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Help with Exception handling
From: David G. Friedman [EMAIL PROTECTED] This looks interesting. What is 'den.login.success'? Is it a key in a resource file or a java class or just a flat file with a dot-notation name? It's a Tiles definition. I'm sure I initially tried a Tiles def in the path attribute of the exception tag, and then switched to a plain old error.jsp when it didn't work. Unfortunately it still doesn't go there when the Exception is thrown, it just shows a stack trace as though the error handling isn't working at all. I forgot to mention in the first message: I'm using Struts 1.2.5 . Thanks for any ideas! -- Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Help with Exception handling
Wendy, Damn, with a name like that it seemed like a resource or a Java code. I'm so used to the convention of starting a tiles definition with a period that you bluffed me. Now, on the JSP issues, since you're trading control over to JSP's, can't you list the exception in your web.xml configuration file? See the 'exception-type' in the solution under this url: http://www.jguru.com/faq/view.jsp?EID=457102 Regards, David -Original Message- From: Wendy Smoak [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 17, 2004 6:43 PM To: Struts Users Mailing List Subject: Re: Help with Exception handling From: David G. Friedman [EMAIL PROTECTED] This looks interesting. What is 'den.login.success'? Is it a key in a resource file or a java class or just a flat file with a dot-notation name? It's a Tiles definition. I'm sure I initially tried a Tiles def in the path attribute of the exception tag, and then switched to a plain old error.jsp when it didn't work. Unfortunately it still doesn't go there when the Exception is thrown, it just shows a stack trace as though the error handling isn't working at all. I forgot to mention in the first message: I'm using Struts 1.2.5 . Thanks for any ideas! -- Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Help with Exception handling
Sorry, I don't exactly know what you are doing wrong, but here is an example that shows what the key attribute is for: From a struts-config.xml: !-- broker login, logout -- action path=/broker/login type=LoginAction name=brokerLoginForm scope=request validate=true parameter=doBrokerLogin input=/broker/brokerlogin.jsp exception key=broker.login.error.authFailure type=AuthenticationException bundle=ExceptionMessages/ forward name=success path=/broker/brokerhome.jsp/ forward name=failure path=/shared/error.jsp/ /action The key attribute to the exception element is a message resources key, in the bundle specified by the bundle attribute. In my ExceptionMessages properties file, I have: broker.login.error.authFailure=Sorry, you entered the wrong password You are correct that, in your Action's execute method, you simply throw the Exception (in my example, an AuthenticationException), and the framework will catch it (since handling has been configured). In my JSP I have this: %-- print exception messages if there are any, otherwise print form validation error messages if there are any --% logic:present name=org.apache.struts.action.EXCEPTION html:errors bundle=EXCEPTION_MESSAGES/ /logic:present As someone pointed out in another Thread (I think it was Joe), my JSP code (logic:present) is not the most efficient, but it works. This prints the error message Sorry, you entered the wrong password at the top of the page if that message is present (if the Exception was thrown). I have also used the path attribute in a global exception config, and it does work as expected. One thing I haven't done, however, is configure for a base class of the actual Exception. I always configure for the exact Exception class. So that could be it. Hope this helps. Erik Wendy Smoak wrote: I know I've tried this before, but so far I haven't gotten all the pieces properly arranged so it works. :/ I currently have code like this in an Action: try { benId = loginDAO.getBenId( asurite ); } catch ( TermsAcceptanceException ex ) { return mapping.findForward( terms ); } In struts-config.xml: action path=/denLogin type=edu.asu.vpia.struts.DevilsDenLoginAction name=loginForm scope=request validate=true input=den.login.page forward name=success path=den.login.success/ forward name=terms path=den.terms.agreement /action It's my impression that I don't need to catch the exception, that I *should* be able to let Action.execute(...) throw it and the framework can be configured to deal appropriately with it. So I took out this line: forward name=terms path=den.terms.agreement And put in: exception type=edu.asu.dao.DAOException path=/WEB-INF/error.jsp key=error.dao.exception/ And I just get a JSP with a stack trace. Although TermsAcceptanceException extends DAOException, it doesn't go to error.jsp. Two questions... what is the 'key' attribute of exception used for, and can anyone tell what I'm doing wrong? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Help with Exception handling
Wendy, Struts exception handling *does* work correctly when it comes to inheritance; and your configuration looks correct. First, check the FQN (fully-qualified name) of your exception -- if that's correct, I suggest you take out your handy-dandy debugger and set a breakpoint in the RequestProcessor. I think you will find that using the debugger is (a) fun, (b) educational, and (c) fun ;) -Bill Siggelkow Wendy Smoak wrote: I know I've tried this before, but so far I haven't gotten all the pieces properly arranged so it works. :/ I currently have code like this in an Action: try { benId = loginDAO.getBenId( asurite ); } catch ( TermsAcceptanceException ex ) { return mapping.findForward( terms ); } In struts-config.xml: action path=/denLogin type=edu.asu.vpia.struts.DevilsDenLoginAction name=loginForm scope=request validate=true input=den.login.page forward name=success path=den.login.success/ forward name=terms path=den.terms.agreement /action It's my impression that I don't need to catch the exception, that I *should* be able to let Action.execute(...) throw it and the framework can be configured to deal appropriately with it. So I took out this line: forward name=terms path=den.terms.agreement And put in: exception type=edu.asu.dao.DAOException path=/WEB-INF/error.jsp key=error.dao.exception/ And I just get a JSP with a stack trace. Although TermsAcceptanceException extends DAOException, it doesn't go to error.jsp. Two questions... what is the 'key' attribute of exception used for, and can anyone tell what I'm doing wrong? Thanks! - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]