2012-04-08 4 views
3

Я пытаюсь найти причину, по которой часть моего приложения перестала работать внезапно. Я запускаю Spring 1 с помощью Weblogic 8.1.4.0 и Hibernate. Генератор отчетов - это часть, которая потерпела неудачу, сначала на нашем производственном сервере, а затем на серверах dev и qa в пятницу, когда я экспериментировал. Я не внес изменений в код, но теперь я получаю исключение «Отсутствующий источник данных» в инструкции компиляции сопоставления. Единственное, что изменилось, это несколько записей в базе данных, но они были довольно простыми изменениями, которые, я сомневаюсь, оказали бы влияние. Я также получил следующее сообщение об ошибке с пятницы по времени, что два приложения развития, возможно, не удалось:ContextLoader: Ошибка инициализации контекста

Здесь ошибка в логах от сервера разработки:

04-06 14:31:34 ERROR [main] org.springframework.web.context.ContextLoader: Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is javax.naming.LinkException: 

И есть аналогичный один около 10 через несколько минут после того, как я развернулся на сервере QA.

Это относится к источнику данных и пулу соединений, определенному в WebLogic. Я проверил и протестировал соединение, и, похоже, никаких проблем с ним нет.

Что может произойти, что могло бы вызвать это? Я даже вернулся обратно в строй с прошлой недели, чтобы убедиться, что это не было изменение кода, но требуется то же DataSource происходит исключение:

04-07 16:15:04 DEBUG [ExecuteThread: '14' for queue: 'default'] org.eei.survey.data.RegionDataDAO$NERCRegionMappingQuery: RdbmsOperation with SQL [{call prc_NERCRegions_get}] compiled 
04-07 16:15:04 ERROR [ExecuteThread: '14' for queue: 'default'] error.jsp: Error page displayed to user due to unhandled exception 
org.springframework.dao.InvalidDataAccessApiUsageException: dataSource is required 
    at org.springframework.jdbc.object.RdbmsOperation.compile(RdbmsOperation.java:300) 
    at org.eei.survey.data.ReportDAO$NCRMappingQuery.<init>(ReportDAO.java:535) 
    at org.eei.survey.data.ReportDAO.executePrcNCR(ReportDAO.java:548) 
    at org.eei.survey.data.ReportDAO.getNCR(ReportDAO.java:59) 
    at jsp_servlet._reliability._charts.__barncr._jspService(__barncr.java:235) 

Любая помощь будет оценена.

UPDATE: Вот полный StackTrace ошибки:

04-08 14:56:19 WARN [ExecuteThread: '14' for queue: 'default'] org.apache.shale.faces.ShaleViewHandler: No ViewController for viewId /reliability/support/reportgen.faces found under name reliability$support$reportgen 
04-08 14:56:19 DEBUG [ExecuteThread: '14' for queue: 'default'] org.eei.survey.data.ReportDAO: java.lang.IllegalArgumentException: No DataSource specified 
04-08 14:56:19 ERROR [ExecuteThread: '14' for queue: 'default'] error.jsp: Error page displayed to user due to unhandled exception 
java.lang.NullPointerException 
    at jsp_servlet._reliability._support.__reportgen._jspService(__reportgen.java:156) 
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) 
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) 
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322) 
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322) 
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130) 
    at org.apache.shale.faces.ShaleViewHandler.renderView(ShaleViewHandler.java:142) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) 
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at org.apache.shale.faces.InvokeCommand.execute(InvokeCommand.java:40) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) 
    at org.apache.shale.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:218) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at org.eei.survey.web.UserFilter.doFilterInternal(UserFilter.java:30) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) 
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) 
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) 
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) 
+0

Можете ли вы получить больше из stacktrace? – chrislovecnm

+0

Добавлен полный стек. – jwBurnside

+0

Вы определяете свой источник данных? – chrislovecnm

ответ

0

Я до сих пор не имеют твердого тела ответ на вопрос, почему это произошло, но я выяснил, как это исправить. Я в основном должен был остановить свое развернутое приложение, а затем сбросить пул соединений, а затем снова перезапустить. Я бы предположил, что перезапуск всего сервера выполнил бы то же самое, но я попробовал это несколько раз без каких-либо результатов. У меня нет часов, чтобы отслеживать источник проблемы в настоящее время, но если кто-то попадает в эту ситуацию, вы, по крайней мере, быстро исправите.

1

Вы испытываете проблемы с jdni разрешение вашего источника данных. Взгляните на weblogic jdni pool и сделайте usre, что вы используете правильное имя для jdni. java: comp/env/jdbc/reliableDS не работает.

Это может помочь:

http://books.google.com/books?id=TiAKHpPHpHIC&pg=PA159&lpg=PA159&dq=weblogic+8.1+jndi+tree&source=bl&ots=cjKNXJZl4o&sig=FHs0YL6hqslNOYjuWpjyRTlCpYY&hl=en&sa=X&ei=veWBT5aVNoTMtgeJ8fC9Bg&ved=0CC0Q6AEwAQ#v=onepage&q=weblogic%208.1%20jndi%20tree&f=false

Это также

http://docs.oracle.com/cd/E13222_01/wls/docs81/jndi/jndi.html

Это, а также

Tomcat vs Weblogic JNDI Lookup

+0

Да, похоже, все похоже. Это было первое, что я проверил пару дней назад, когда это произошло. Знаете ли какие-либо другие журналы или методы отладки, которые я могу попробовать? Благодарю. – jwBurnside

+0

напишите единичный тест и подключитесь к экземпляру weblogic за пределами conatainer. Включить ведение журнала отладки в компонентах пружины jdni – chrislovecnm