Я попросил Ben сделать усовершенствование для старого приложения Spring (думаю, 2.0, но, возможно, 2.5), и я очень мало знаю о Spring. Приложение работает под Oracle OC4J, поскольку оно было предоставлено мне, и я пытаюсь запустить его под Jetty, чтобы я мог его отладить. Я импортировал проект в последнюю версию Spring Tool Suite из своего pom.xml и исправил то, что, казалось, было несколько незначительных проблем с конфигурацией, и я думаю, что он будет работать под Spring 4, который я использую. Я смог использовать mvn для создания WAR-файла, и теперь я пытаюсь запустить его под Jetty.Spring JNDI, Как сообщить контейнеру, где бобы без кода?
Когда я его запускаю, Jetty runner выбрасывает кучу исключений, таких как тот, который я буду вставлять ниже, но общая тема кажется, что она не может разрешить мои бобы. Я нашел несколько сообщений, показывающих, как добавлять в код информацию об именах, но этот код уже выполняется как есть и должен запускаться в той же среде, в которой он работает, после того, как я его изменил. Поэтому я не решаюсь сделать такое изменение. Кажется, что я могу как-то отобразить это в файле свойств, но я не могу найти способ сделать это.
Я думаю, что важная информация из нижеследующего исключения является:
Invocation of init method failed; nested exception is javax.naming.NameNotFoundException; remaining name 'datasource/regcntrllst'
Если кто-то может сказать мне, что это не так, и указать мне на соответствующие документы, я бы очень признателен, спасибо ...
Вот файл конфигурации XML из SRC/основные/ресурсы/Edu называется ApplicationContext-container.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
Provides bean definitions for use in the J2EE container (as opposed to in the standalone test
environment.
-->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Data Sources -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<bean id="sisDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="datasource/regcntrllst" />
<property name="resourceRef" value="true" />
</bean>
<!-- Transaction manager outside of app servers -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
Вот исключение:
VJG8WP:jetty-test jarcher$ java -cp jetty-runner-9.3.2.v20150730.jar org.eclipse.jetty.runner.Runner academic-regcntrllst-1.2.10-SNAPSHOT.war
2015-08-03 16:49:17.344:INFO::main: Logging initialized @105ms
2015-08-03 16:49:17.351:INFO:oejr.Runner:main: Runner
2015-08-03 16:49:17.433:INFO:oejs.Server:main: jetty-9.3.2.v20150730
2015-08-03 16:49:21.943:INFO:/:main: No Spring WebApplicationInitializer types detected on classpath
2015-08-03 16:49:22.093:INFO:/:main: Initializing Spring root WebApplicationContext
[ERROR] [2015-08-03 16:49:23,575] [org.springframework.web.context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mitsisStudentService' defined in URL [jar:file:/private/var/folders/z5/m0w5k8z16xq25l_26n_fsl1m0000gn/T/jetty-0.0.0.0-8080-academic-regcntrllst-1.2.10-SNAPSHOT.war-_-any-4602767227392286160.dir/webapp/WEB-INF/lib/csf-common-legacy-2.0.43.jar!/applicationContext-csf-common.xml]: Cannot resolve reference to bean 'hibernateStudentDao' while setting bean property 'studentDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateStudentDao' defined in URL [jar:file:/private/var/folders/z5/m0w5k8z16xq25l_26n_fsl1m0000gn/T/jetty-0.0.0.0-8080-academic-regcntrllst-1.2.10-SNAPSHOT.war-_-any-4602767227392286160.dir/webapp/WEB-INF/lib/csf-common-legacy-2.0.43.jar!/applicationContext-csf-common.xml]: Cannot resolve reference to bean 'daoFoundation' while setting bean property 'daoFoundation'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoFoundation' defined in URL [jar:file:/private/var/folders/z5/m0w5k8z16xq25l_26n_fsl1m0000gn/T/jetty-0.0.0.0-8080-academic-regcntrllst-1.2.10-SNAPSHOT.war-_-any-4602767227392286160.dir/webapp/WEB-INF/lib/csf-orm-2.0.43.jar!/applicationContext-csf-orm-config.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in URL [file:/private/var/folders/z5/m0w5k8z16xq25l_26n_fsl1m0000gn/T/jetty-0.0.0.0-8080-academic-regcntrllst-1.2.10-SNAPSHOT.war-_-any-4602767227392286160.dir/webapp/WEB-INF/classes/applicationContext.xml]: Cannot resolve reference to bean 'mitsisDataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mitsisDataSource' defined in URL [file:/private/var/folders/z5/m0w5k8z16xq25l_26n_fsl1m0000gn/T/jetty-0.0.0.0-8080-academic-regcntrllst-1.2.10-SNAPSHOT.war-_-any-4602767227392286160.dir/webapp/WEB-INF/classes/applicationContext-container.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFoundException; remaining name 'datasource/regcntrllst'
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:798)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:530)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:771)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:342)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1368)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1335)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:735)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:259)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:511)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:161)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start(Server.java:405)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:372)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.runner.Runner.run(Runner.java:502)
at org.eclipse.jetty.runner.Runner.main(Runner.java:547)
Большое спасибо, я просматриваю документы. Я еще не совсем понимаю это, но я над этим работаю. Я добавил файл конфигурации xml из этого приложения в исходный вопрос, который, похоже, настроил источник данных или, по крайней мере, сопоставил источник данных JNDI. Не могли бы вы посмотреть на это и посмотреть, добавляет ли он полезную информацию? –