2017-03-14 2 views
0

Eclipse에서 제대로 실행되는 Red5 응용 프로그램이 있습니다. 그러나 앱을 빌드하고 Windows 서비스로 실행하려고하면 오류가 발생합니다.Windows 서비스로 실행했을 때 Red5 응용 프로그램이 BeanCreationException을 얻고 있습니다.

Tue Mar 14 16:00:51 MDT 2017: debug: about to get baseLoader 
Tue Mar 14 16:00:51 MDT 2017: debug: about to get loader: [email protected] 
Tue Mar 14 16:00:51 MDT 2017: debug: about to set new loader:[email protected] 
Tue Mar 14 16:00:51 MDT 2017: debug: about to create boot object: [email protected] 
Tue Mar 14 16:00:51 MDT 2017: debug: about to get method 1: [email protected] 
Tue Mar 14 16:00:51 MDT 2017: debug: about to invoke method 1: public void org.red5.server.Launcher.launch() throws java.lang.Exception 
Tue Mar 14 16:01:01 MDT 2017: error: Errorjava.lang.reflect.InvocationTargetException 
Tue Mar 14 16:01:01 MDT 2017: error: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at ... 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.rzo.yajsw.app.WrapperJVMMain.executeMain(WrapperJVMMain.java:53) 
    at org.rzo.yajsw.app.WrapperJVMMain.main(WrapperJVMMain.java:36) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'context.loader' defined in class path resource [red5.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcat.server' defined in class path resource [jee-container.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 
    at org.red5.server.Launcher.launch(Launcher.java:69) 
    ... 14 more 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcat.server' defined in class path resource [jee-container.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:217) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:350) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:968) 
    at org.red5.server.ContextLoader.afterPropertiesSet(ContextLoader.java:113) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
    ... 24 more 
Caused by: java.lang.NullPointerException 
    at java.util.Hashtable.put(Unknown Source) 
    at java.util.Properties.setProperty(Unknown Source) 
    at java.lang.System.setProperty(Unknown Source) 
    at org.red5.server.tomcat.TomcatLoader.start(TomcatLoader.java:252) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1702) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1641) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
    ... 36 more 

내 관련 코드는 다음과 같다 :

// get current loader 
    logDebug(" about to get baseLoader"); 
    ClassLoader baseLoader = Thread.currentThread().getContextClassLoader(); 
    // build a ClassLoader 
    logDebug(" about to get loader: " + baseLoader); 
    ClassLoader loader = ClassLoaderBuilder.build(); 
    // set new loader as the loader for this thread 
    logDebug(" about to set new loader:" + loader); 
    Thread.currentThread().setContextClassLoader(loader); 
    // create a new instance of this class using new classloader 
    logDebug(" about to create boot object: " + loader); 
    Object boot = Class.forName("org.red5.server.Launcher", true, loader).newInstance(); 
    logDebug(" about to get method 1: " + boot); 
    Method m1 = boot.getClass().getMethod("launch", (Class[]) null); 
    logDebug(" about to invoke method 1: " + m1); 
    m1.invoke(boot, (Object[]) null); 
    // not that it matters, but set it back to the original loader 
    logDebug(" about to set original loader: " + m1); 
    Thread.currentThread().setContextClassLoader(baseLoader); 

어떤 아이디어가 나는 다음과 같은 오류/스택 추적을 얻을 Red5의 서버를 시작하려고 응용 프로그램 시작 후

, 무엇이 오류를 일으키고 어떻게 해결할 수 있습니까?

편집 : 아래 그림과는 제가 위에서 가지고 있던 NullPointerException이 제거했기 때문에

은 내가 Red5의 루트 디렉토리로 설정 시스템 프로퍼티라는 red5.root을 추가했다.

String red5Root = serverHome + "/red5-server-1.0.6-RELEASE"; 
System.setProperty("red5.root", red5Root); 

그러나 여전히 red5 서버에 연결하는 데 문제가 있습니다. 나는 다음과 같은 URL을 내 웹 응용 프로그램에 액세스로 이동하려고 할 때 :

로컬 호스트 : 8080/스트리밍/streaming.html

나는이 예외에 500 오류가 점점 오전 :

java.lang.NullPointerException이 org.red5.logging.LoggerContextFilter.doFilter (LoggerContextFilter.java:64)

하는 CA가 될 수 무엇 이 NullPointerExeption을 사용하고 있습니까?

답변

0

첫 번째 질문은 이미 편집에서 대답 한 것이므로 두 번째 질문에 답할 것입니다.

NPE는 클래스 경로에서 로깅 항아리가 충돌하여 발생했습니다. 내 webapps/myApp/WEB-INF/web.xml 파일에서 다음을 제거하여 문제를 해결할 수있었습니다.

<filter> 
    <filter-name>LoggerContextFilter</filter-name> 
    <filter-class>org.red5.logging.LoggerContextFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>LoggerContextFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
관련 문제