as2.0+red5+spring jdbc
call.fla:
user.java
Application.java
applicationContext.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd"
>
![]()
<
beans
>
<!--
sql server connection
-->
<
bean
id
="dataSource"
class
="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
<
property
name
="driverClassName"
value
="com.mysql.jdbc.Driver"
/>
<
property
name
="url"
value
="jdbc:mysql://localhost:3306/test"
/>
<
property
name
="username"
value
="root"
/>
<
property
name
="password"
value
="admin"
/>
</
bean
>
![]()
</
beans
>
red5-web.propertiest
red5-web.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans
>
<!--
Defines a properties file for dereferencing variables
-->
<
bean
id
="placeholderConfig"
class
="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
>
<
property
name
="location"
value
="/WEB-INF/red5-web.properties"
/>
</
bean
>
<!--
Defines the web context
-->
<
bean
id
="web.context"
class
="org.red5.server.Context"
autowire
="byType"
/>
<!--
Defines the web scopes
-->
<
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
>
![]()
<!--
Defines the web handler which acts as an applications endpoint
-->
<
bean
id
="web.handler"
class
="org.red5.core.Application"
singleton
="true"
/>
</
beans
>
web.xml
1
nc
=
new
NetConnection();
2
nc.connect(
"
rtmp://localhost/red5
"
);
3![]()
nc.onResult
=
function
(obj)
{
4
var arr:Array=new Array();
5
arr=obj;
6
trace("obj="+arr.length);
7![]()
for(var i:Number=0;i<arr.length;i++)
{
8
trace("arr"+[i]+":"+arr[i].user_name+" "+arr[i].age);
9
}
10
11![]()
if(obj==1)
{
12
resultTxt.text="用户名密码正确!";
13![]()
}else
{
14
resultTxt.text="请输入user,pwd!";
15
}
16
trace("返回的值是:"+obj);
17
18
dataGrid.dataProvider=arr;
19
dataGrid.editable=true;
20![]()
dc.selectableRange=
{rangeStart:new Date(2003,9,15),rangeEnd:new Date(2003,11,31)}
21![]()
22
23
}
;
24![]()
button.onRelease
=
function
()
{
25
//username password
26
nc.call("login", nc, username.text, password.text);
27
}
;
28
2
3

4
5
6
7

8
9
10
11

12
13

14
15
16
17
18
19
20

21
22
23
24

25
26
27
28
user.java
1
package
org.red5.core.vo;
2![]()
3![]()
public
class
User
{
4
private int id;
5
private String user_name;
6
private int age;
7![]()
public int getId()
{
8
return id;
9
}
10![]()
public void setId(int id)
{
11
this.id = id;
12
}
13![]()
public String getUser_name()
{
14
return user_name;
15
}
16![]()
public void setUser_name(String user_name)
{
17
this.user_name = user_name;
18
}
19![]()
public int getAge()
{
20
return age;
21
}
22![]()
public void setAge(int age)
{
23
this.age = age;
24
}
25
26
}
2
3

4
5
6
7

8
9
10

11
12
13

14
15
16

17
18
19

20
21
22

23
24
25
26
Application.java
1
package
org.red5.core;
2![]()
3
import
java.sql.ResultSet;
4
import
java.sql.SQLException;
5
import
java.util.Iterator;
6
import
java.util.List;
7![]()
8
import
javax.sql.DataSource;
9![]()
10
import
org.red5.core.vo.User;
11
import
org.red5.server.adapter.ApplicationAdapter;
12
import
org.red5.server.api.Red5;
13
import
org.red5.server.api.stream.IStreamAwareScopeHandler;
14
import
org.springframework.jdbc.core.JdbcTemplate;
15
import
org.springframework.jdbc.core.RowMapper;
16![]()
17![]()
public
class
Application
extends
ApplicationAdapter
implements
IStreamAwareScopeHandler
{
18
19![]()
public List login(String username,String password)
{
20
System.out.println("username="+username+";pwd="+password);
21
Object o=Red5.getConnectionLocal().getScope().getContext().getBean("dataSource");
22
JdbcTemplate jdbcTemplate=new JdbcTemplate((DataSource)o);
23![]()
List list=jdbcTemplate.query("select * from users",new RowMapper()
{
24![]()
25![]()
public Object mapRow(ResultSet rs, int rowNum) throws SQLException
{
26
User user=new User();
27
user.setId(rs.getInt(1));
28
user.setUser_name(rs.getString("user_name"));
29
user.setAge(rs.getInt("age"));
30
return user;
31
}
32
33
});
34![]()
for(int i=0;i<list.size();i++)
{
35
User user=(User)list.get(i);
36
System.out.println("username="+user.getUser_name());
37
}
38
System.out.println("username1="+username+";pwd1="+password);
39![]()
if(username.equals("user")&&password.equals("pwd"))
{
40
return list;
41![]()
}else
{
42
return list;
43
}
44
}
45
}
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

18
19

20
21
22
23

24
25

26
27
28
29
30
31
32
33
34

35
36
37
38
39

40
41

42
43
44
45
46
applicationContext.xml
1
webapp.contextPath=/red5
2
webapp.virtualHosts=localhost, 127.0.0.1
2
red5-web.xml
web.xml
1
<?
xml version="1.0" encoding="ISO-8859-1"
?>
2
<
web-app
3
xmlns
="http://java.sun.com/xml/ns/j2ee"
4
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
5
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
6
version
="2.4"
>
7![]()
8
<
display-name
>
My sample Red5 application
</
display-name
>
9![]()
10
<
context-param
>
11
<
param-name
>
globalScope
</
param-name
>
12
<
param-value
>
default
</
param-value
>
13
</
context-param
>
14![]()
15
<
context-param
>
16
<
param-name
>
contextConfigLocation
</
param-name
>
17
<
param-value
>
/WEB-INF/red5-*.xml,/WEB-INF/applicationContext.xml
</
param-value
>
18
</
context-param
>
19![]()
20
<
context-param
>
21
<
param-name
>
locatorFactorySelector
</
param-name
>
22
<
param-value
>
red5.xml
</
param-value
>
23
</
context-param
>
24![]()
25
<
context-param
>
26
<
param-name
>
parentContextKey
</
param-name
>
27
<
param-value
>
default.context
</
param-value
>
28
</
context-param
>
29
30
<!--
context-param>
31
<param-name>log4jConfigLocation</param-name>
32
<param-value>/WEB-INF/log4j.properties</param-value>
33
</context-param
-->
34
35
<
context-param
>
36
<
param-name
>
webAppRootKey
</
param-name
>
37
<
param-value
>
/red5
</
param-value
>
38
</
context-param
>
39
40
<!--
listener>
41
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
42
</listener
-->
43
44
<
listener
>
45
<
listener-class
>
org.springframework.web.context.ContextLoaderListener
</
listener-class
>
46
</
listener
>
47![]()
48
<!--
remove the following servlet tags if you want to disable remoting for this application
-->
49
<
servlet
>
50
<
servlet-name
>
gateway
</
servlet-name
>
51
<
servlet-class
>
org.red5.server.net.servlet.AMFGatewayServlet
</
servlet-class
>
52
</
servlet
>
53
54
<
servlet-mapping
>
55
<
servlet-name
>
gateway
</
servlet-name
>
56
<
url-pattern
>
/gateway
</
url-pattern
>
57
</
servlet-mapping
>
58![]()
59
<
security-constraint
>
60
<
web-resource-collection
>
61
<
web-resource-name
>
Forbidden
</
web-resource-name
>
62
<
url-pattern
>
/streams/*
</
url-pattern
>
63
</
web-resource-collection
>
64
<
auth-constraint
/>
65
</
security-constraint
>
66![]()
67
</
web-app
>
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68