I recall seeing a question from a user about accessing servlet parameters from their Red5 application, so I have created a small demo which shows how to not only access sevlet parameters from Red5 apps but the other way around as well.
Retrieve a servlet context parameter from inside a Red5 application (AppContext -> Servlet)
1. Grab a reference to the application context
ApplicationContext appCtx = getContext().getApplicationContext();
2. Get the servlet context
ServletContext ctx = ((XmlWebApplicationContext) appCtx).getServletContext();
3. Get the context parameter
String param = ctx.getInitParameter("myparam");
Retrieve an application context parameter from a inside a servlet (Servlet -> AppContext)
1. Get the servlet context
ServletContext ctx = getServletContext();
2. Grab a reference to the application context
ApplicationContext appCtx = ctx.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
3. Get the bean holding the parameter
MyBean bean = appCtx.getBean("mybean"); String param = bean.getParameter("myparam");
Sample project files: parameterdemo.zip
Instructions:
Unzip the demo and create a new directory named parameterdemo in your red5/webapps directory, then restart your server.
Open your browser and go here: http://localhost/parameterdemo/myservlet?paramName=myparam
You should see "Hello World"
To test the Red5 application you will need to create a Flex or Flash application that connects to: rtmp://localhost/parameterdemo
Then simply call "getParameter" passing a parameter name you want the value of. The name must match a context param in the web.xml file.
�
Tags: context, param, property, servlet, spring, webapp
In Red5, you have pretty much full access to manipulate the embedded Tomcat engine via Spring. With that being said I would like to give details on how to change the http connector between two available options; there are several other options, but I'll only be covering NIO and BIO. First a quick explanation of these two options:
<property name="connector">
<bean class="org.apache.catalina.connector.Connector">
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11Protocol" />
<property name="port"><value>80</value></property>
<property name="redirectPort"><value>443</value></property>
<property name="enableLookups"><value>false</value></property>
</bean>
</property>
To use the NIO connector simply change the constructor arg as shown below:
<property name="connector">
<bean class="org.apache.catalina.connector.Connector">
<constructor-arg type="java.lang.String" value="org.apache.coyote.http11.Http11NioProtocol" />
<property name="port"><value>80</value></property>
<property name="redirectPort"><value>443</value></property>
<property name="enableLookups"><value>false</value></property>
</bean>
</property>
Tags: connector, http, linux, nio, osx, RTMPS, rtmpt, spring, tomcat
I recently had the worst time trying to get JTA transactions to play nice in Hibernate configured via Spring. There is a lot of information out there on bits-n-pieces of the individual technologies but nothing seemed to show the whole picture, so I would like to provide the community with a working example. The code is not "perfect" but it demonstrates how to get this stuff working in harmony. A junit test, mssql scripts, and all the configs are included. I also set this up to use a composite key, since the project I worked on used a great deal of them and info was not easy to come by.
One of the libraries I used called BTM was instrumental in getting this to work (thanks Ludovic!), you will find this a lot easier to use than JOTM. There is a huge gotcha when using XA transactions with MSSQL, you have to install a dll and run some scripts to get it enabled and that info may be found here. I'm not sure if you have to do anything special in MySQL but I doubt it ![]()
The example comes as a zipped Eclipse project available here.
(more...)