Весенний ресурс - PullRequest
       12

Весенний ресурс

2 голосов
/ 25 ноября 2011

Проблема: я хочу сделать приведенные ниже определения bean-компонентов (указанные в aaplicationContext.xml) необязательными для "org.springframework.web.context.ContextLoaderListener".Если я не предоставляю параметр контекста «emsPropLocation» правильно, веб-контейнер tomcat не может быть правильно инициализирован, и это является очевидной причиной.Есть ли способ сделать его необязательным?

appicationContext.xml:

  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreResourceNotFound" value="false"/>
    <property name="location" value="file:/#{contextParameters.emsPropLocation}" />
  </bean>

  <!-- TIBCO Connection Factory Bean -->
  <bean id="tibcoConnectionFactory" class="com.tibco.tibjms.TibjmsConnectionFactory">
    <constructor-arg value="${emsServerURL}"/>
    <property name="userName" value="${emsUserName}"/>
    <property name="userPassword" value="${emsPassword}"/>
    <property name="connAttemptCount" value="${connAttemptCount}"/>
    <property name="connAttemptDelay" value="${connAttemptDelay}"/>
    <property name="connAttemptTimeout" value="${connAttemptTimeout}"/>
    <property name="reconnAttemptCount" value="${reconnAttemptCount}"/>
    <property name="reconnAttemptDelay" value="${reconnAttemptDelay}"/>
    <property name="reconnAttemptTimeout" value="${reconnAttemptTimeout}"/>
  </bean>


  <!-- bean id="tibcoUtil" class="com.nr.ns.upload.TibcoUtil" scope="singleton">
    <constructor-arg value="true"/>
  </bean-->

  <bean id="jmsExceptionListener" class="com.nr.ns.upload.LogMsgExceptionListener"/>

  <!-- Spring CachingConnectionFactory Bean -->
  <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <constructor-arg ref="tibcoConnectionFactory"/>
    <property name="reconnectOnException" value="${reconnectOnException}"/>
    <property name="sessionCacheSize" value="${sessionCacheSize}"/>
    <property name="exceptionListener" ref="jmsExceptionListener"/>
  </bean> 

  <!-- JMSTemplate Bean -->
  <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <constructor-arg ref="connectionFactory"/>
    <property name="receiveTimeout" value="${receiveTimeout}"/>
    <property name="deliveryMode" value="${deliveryMode}"/>
  </bean>

Мы храним WAR-файл вне tomcat, и для этого у нас есть файл app.xml внутри TOMCAT_HOME / conf /Каталина / локальный.

app.xml:

<Context path="/app"
    docBase="/abc/ccp/app.war"
    reloadable="true"
    unpackWAR="false">

    <Parameter name="emsPropLocation"
        value="/xyz/config/EMSServerConf.properties"
        override="false"/>
</Context>

Ответы [ 2 ]

0 голосов
/ 04 июля 2016

Если contextParameters.emsPropLocation не установлен, по умолчанию будет использоваться двоеточие.

<property name="location" value="file:/#{contextParameters.emsPropLocation:/xyz/config/EMSServerConf.properties}" />
0 голосов
/ 30 сентября 2015

попытайтесь изменить свойство ignoreResourceNotFound вашего propertyConfigurer на true.

...