2015-08-03 1 views
0

Я попросил 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) 

ответ

0

Похоже DataSource '/ источника данных regcntrllst' не может быть найден.

Вам необходимо добавить этот источник данных с тем же именем на ваш сервер Jetty. Вот раздел документации Configuring DataSources документации Jetty.

+0

Большое спасибо, я просматриваю документы. Я еще не совсем понимаю это, но я над этим работаю. Я добавил файл конфигурации xml из этого приложения в исходный вопрос, который, похоже, настроил источник данных или, по крайней мере, сопоставил источник данных JNDI. Не могли бы вы посмотреть на это и посмотреть, добавляет ли он полезную информацию? –

Смежные вопросы