Предположим, мы разработали веб-сайт в Struts 2, Hibernate, MySQL и добавили несколько блоков try/catch, которые включают в себя вызовы базы данных через Hibernate. Мой вопрос:
Внутри блока catch я отправляю соответствующее сообщение в регистратор. Здесь мы не можем использовать System.out.println в качестве веб-страницы. Что еще можно сделать, чтобы предупредить пользователя об исключении?
В рамках тестирования я изменил файл hibernate.cfg.xml и ввел неправильный пароль базы данных, чтобы имитировать сценарий сбоя базы данных.
javax.servlet.ServletException: Filter execution threw an exception
java.lang.NoClassDefFoundError: com_cenqua_clover/CoverageRecorder
my.com.employee.(employee.java:29)
com.action.employeeAction.(employeeAction.java:23)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
java.lang.Class.newInstance0(Class.java:355)
java.lang.Class.newInstance(Class.java:308)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.20 logs.
и с точки зрения пользователей это нежелательно, так как же решать такие проблемы. Я использую Eclipse Juno, Windows XP, MySQL 5.5.
Предположим, мы разработали веб-сайт в Struts 2, Hibernate, MySQL и добавили несколько блоков try/catch, которые включают в себя вызовы базы данных через Hibernate. [b]Мой вопрос:[/b] [list] [*]Внутри блока catch я отправляю соответствующее сообщение в регистратор. Здесь мы не можем использовать System.out.println в качестве веб-страницы. Что еще можно сделать, чтобы предупредить пользователя об исключении?
[*]В рамках тестирования я изменил файл hibernate.cfg.xml и ввел неправильный пароль базы данных, чтобы имитировать сценарий сбоя базы данных.
[/list] [b]как я и ожидал. Выдала ошибку:[/b] [code] javax.servlet.ServletException: Filter execution threw an exception
java.lang.NoClassDefFoundError: com_cenqua_clover/CoverageRecorder my.com.employee.(employee.java:29) com.action.employeeAction.(employeeAction.java:23) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) java.lang.Class.newInstance0(Class.java:355) java.lang.Class.newInstance(Class.java:308) com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119) com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150) com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139) com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109) com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288) com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388) com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187) org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.20 logs. [/code] и с точки зрения пользователей это нежелательно, так как же решать такие проблемы. Я использую Eclipse Juno, Windows XP, MySQL 5.5.