我有一个使用flex的red5应用程序。 现在,我只想使用spring mvc(DispatcherServlet)在其上面开发一个小型Web应用程序。 但是问题是我无法从mvc访问red5-web.xml中定义的bean,而且我也无法从spring mvc访问red-web bean。 错误是NoSuchBeanDefinitionException。

两者之间没有桥梁。 是否有可能在spring mvc中获得red5.context。 这样我就可以访问所有内容。 这是代码片段

red5-web.xml

<beans>
    <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="/WEB-INF/red5-web.properties" />
    </bean>

    <bean id="web.context" class="org.red5.server.Context" 
        autowire="byType" />

    <bean id="web.scope" class="org.red5.server.WebScope"
         init-method="register">
        <property name="server" ref="red5.server" />
        <property name="parent" ref="global.scope" />
        <property name="context" ref="web.context" />
        <property name="handler" ref="web.handler" />
        <property name="contextPath" value="${webapp.contextPath}" />
        <property name="virtualHosts" value="${webapp.virtualHosts}" />
    </bean>

    <bean id="live.recorder" class="com.live.application.RecordManager">
        <constructor-arg ref="web.handler" />
    </bean>

    <bean id="web.handler" name="application"
        class="com.live.application.LiveContent"
        singleton="true" autowire="byName" />
</beans>

webapplication-servlet.xml

<beans>

  <context:annotation-config/>
  <context:component-scan base-package="com.live.web"/>
  <context:component-scan base-package="com.live.service"/>
  <mvc:annotation-driven/>

  <bean id="localeResolver" class="org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver"/> 

  <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
    <property name="order" value="0"/>
  </bean>
  <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
    <property name="order" value="1"/>
  </bean>
  <bean name="users.search_results" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
    <property name="renderedAttributes" value="users"/>
  </bean>

  <bean name="system.status" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
    <property name="renderedAttributes">
      <set>
        <value>status</value>
        <value>notifications</value>
      </set>        
    </property>
  </bean>
  <bean name="system.update" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
    <property name="renderedAttributes">
      <set>
        <value>error</value>
        <value>status</value>
        <value>notification</value>
      </set>        
    </property>
  </bean>

</beans>

我将spring注释用于控制器和服务。

===============>>#1 票数:1 已采纳

最后,我解决了这个问题。 问题是

通常,Spring DispatcherServlet(MVC)创建一个Web上下文并将父级设置为由Spring mvc ContextLoaderListener加载的ApplicationContext。 Red5有自己的上下文加载器侦听器,并且它自己加载了上下文。 两者之间没有关系。

要覆盖此问题,我们必须将red5 ApplicationContext设置为DispatcherServlet的父上下文。 为此,您必须重写Dispatcherservlet中的initWebApplicationContext()函数。

我为此写了一个博客条目,请参阅此http://www.arulraj.net/2012/04/red5-with-spring-mvc.html GIT存储库是https://github.com/arulrajnet/red5Demo

===============>>#2 票数:0

有多种方法可以访问在多个XML文件中定义的bean

  1. 您可以将一些XML文件定义为“全球可用”

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd“>

     <context-param> <param-name>contextConfigLocation</param-name> <param-value> WEB-INF/red5-web.xml </param-value> </context-param> 
  2. 您可以指定Servlet的其他XML文件

     <servlet> <display-name>CXF Servlet</display-name> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> WEB-INF/red5-web.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 
  3. 您可以通过以下方式将XML文件彼此导入

    <import resource =“ classpath:WEB-INF / red5-web.xml” />

  ask by arulraj.net translate from so

未解决问题?本站智能推荐:

2回复

在基于Java的Spring配置中创建applicationContext bean

我正在尝试使用Java配置从头开始构建基于Spring的应用程序,但是我收到警告,我完全不明白...有人可以告诉我那里出了什么问题吗? 错误:警告:上下文初始化期间遇到异常-取消刷新尝试org.springframework.beans.factory.BeanCreationExcept
2回复

与bean和应用程序上下文有关的查询。

我正在使用Spring MVC开发Web应用程序。 我想问一些与bean文件和应用程序上下文有关的事情。 我有对象的类。 假设我有一个雇员,产品,项目类,在该雇员(ID,名称)中有一些对象,产品和项目也是如此。 现在,我必须为以下对象编写bean: 我应该为每个类(例如emp
2回复

Bean是使用@Controller初始化的,但不会调用@RequestMapping

以下是我针对基于Spring 3注释的新控制器的设置: // dispatcher-servlet.xml // web.xml //弹簧控制器 当我导航到/ auth时,得到404。当我尝试在applicationContext注册bean时,如下所示:
19回复

Spring确实存在时找不到Bean xml配置文件

我正在尝试在Spring中制作我的第一个bean,但是在加载上下文时遇到了问题。 我在src / main / resources中有一个bean的配置XML文件。 我收到以下IOException: 线程“主”中的异常org.springframework.beans.factory.Be
1回复

在RHS中引用Spring XML中的属性的属性?

Spring XML中有复合属性名称,但是我找不到复合属性值。 假设我的Person getter具有以下原型: Company原型如下: 我可以将它们与类似 上面说“没有带有Bob.father id的bean” Bob.father 。 以下也行不通
1回复

来自xml的Spring Context类加载器[关闭]

如何从Spring xml配置中获取应用程序上下文类加载器,以将其设置为其他bean的参数? 从Java代码我可以
2回复

BeanFactory未初始化或已关闭 - 在通过ApplicationContext访问bean之前调用'refresh'

我有这个web.xml文件 和包含Bean的applicationContext 和ApplicationContext的ApplicationContextProvider.java 因此我在TrunkcateCifSrcImpl Bean中定义了一个方法returnC
1回复

在测试过程中更换具有自动装配依赖性的Spring bean

我试图让Spring用另一个不具有这些自动装配依赖关系的(测试类)替换具有自动装配依赖关系的类,但是我总是以这样的NoSuchBeanDefinitionException结尾: 由以下原因引起:org.springframework.beans.factory.NoSuchBeanDef
1回复

无法按类查找bean

我在applicationContext.xml中定义了实现类的bean,如下所示: 我试图从一个类中获取它,如下所示: DatabaseIdGenerator是CacheEnabledDatabaseIdGenerator的接口 执行代码时出现以下异常 当我尝试通
1回复

存储库中缺少bean

我的应用程序无法启动,因为spring无法看到bean。 我正在尝试运行mu应用程序并将创建的用户添加到db。 我不知道如何创建缺少的bean。 我发现接口上面必须有注释@Repository,所以我放置了它,但它仍然不起作用。 用户: UserRepo: 控制器