red5 1.0.7 集成tomcat 并且 进行整合 官方例子oflaDemo

    • 简介

      • eclipse 部署
      • 整合 maven 依赖关系
        • red5-server-common - pomxml
        • red5-io - pomxml
        • red5-server pomxml
        • red5-service - pomxml
      • 整合tomcat

简介:

之所要写,是因为网上很难找到最新的。 并且 red5-server 1.0.7 版本下的 server/war 包下完全用不了,旧的版本可以直接部署到tomcat就可以了。 但是,1.0.7 不行 日志也不行,所以特意写写部署的过程。

eclipse 部署

  直接使用maven项目导入就可以了,基本上不会有什么问题。有问题的话,可能也是jdk版本的问题。可以自行更改

整合 maven 依赖关系

说明:因为有太多的包分别在各个子项目中,现在统一全部放在parent 父级中,方便我们新建red5项目的时候进行引入即可。直接上代码(已修改好的)。

red5-server-common —-> pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.red5</groupId>
        <artifactId>red5-parent</artifactId>
        <version>1.0.7-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>red5-server-common</artifactId>
    <name>Red5 :: Common server classes</name>
    <description>Classes common for multiple red5 projects</description>
    <packaging>jar</packaging>
    <url>https://github.com/Red5/red5-server-common</url>
    <organization>
        <name>Red5</name>
        <url>https://github.com/Red5</url>
    </organization>
    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>red5-interest</name>
            <post>https://groups.google.com/forum/?fromgroups#!forum/red5interest</post>
        </mailingList>
    </mailingLists>
    <issueManagement>
        <system>github</system>
        <url>https://github.com/Red5/red5-server-common/issues</url>
    </issueManagement>
    <scm>
        <url>https://github.com/Red5/red5-server-common.git</url>
        <connection>scm:git:[email protected]:Red5/red5-server-common.git</connection>
        <developerConnection>scm:git:[email protected]:Red5/red5-server-common.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <id>Dominick Accattato</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Paul Gregoire</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Dan Rossi</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Tiago Jacobs</id>
            <email>[email protected]</email>
        </developer>
    </developers>
    <repositories>
        <repository>
            <id>sonatype-snapshots</id>
            <name>Sonatype Snapshots</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
        <repository>
            <id>sonatype-releases</id>
            <name>Sonatype Releases</name>
            <url>http://oss.sonatype.org/content/repositories/releases</url>
        </repository>
    </repositories>
    <build>
        <defaultGoal>install</defaultGoal>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
            <testResource>
                <directory>src/test/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.red5</groupId>
                <artifactId>red5-io</artifactId>
                <version>${project.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>bcprov-jdk15on</artifactId>
                        <groupId>org.bouncycastle</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>mina-core</artifactId>
                        <groupId>org.apache.mina</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>mina-integration-jmx</artifactId>
                        <groupId>org.apache.mina</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>mina-integration-beans</artifactId>
                        <groupId>org.apache.mina</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-beanutils</artifactId>
                        <groupId>commons-beanutils</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-codec</artifactId>
                        <groupId>commons-codec</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-lang3</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>spring-web</artifactId>
                        <groupId>org.springframework</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>quartz</artifactId>
                        <groupId>org.quartz-scheduler</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.red5</groupId>
            <artifactId>red5-io</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
    </dependencies>
</project>

red5-io —-> pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.red5</groupId>
        <artifactId>red5-parent</artifactId>
        <version>1.0.7-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>red5-io</artifactId>
    <name>Red5 :: IO</name>
    <description>The Red5 I/O library</description>
    <packaging>jar</packaging>
    <url>https://github.com/Red5/red5-io</url>
    <organization>
        <name>Red5</name>
        <url>https://github.com/Red5</url>
    </organization>
    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>red5-interest</name>
            <post>https://groups.google.com/forum/?fromgroups#!forum/red5interest</post>
        </mailingList>
    </mailingLists>
    <issueManagement>
        <system>github</system>
        <url>https://github.com/Red5/red5-io/issues</url>
    </issueManagement>
    <scm>
        <url>https://github.com/Red5/red5-io.git</url>
        <connection>scm:git:[email protected]:Red5/red5-io.git</connection>
        <developerConnection>scm:git:[email protected]:Red5/red5-io.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <id>Dominick Accattato</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Paul Gregoire</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Dan Rossi</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Tiago Jacobs</id>
            <email>[email protected]</email>
        </developer>
    </developers>
    <build>
        <defaultGoal>install</defaultGoal>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <dependencies>

    </dependencies>
</project>

red5-server pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.red5</groupId>
        <artifactId>red5-parent</artifactId>
        <version>1.0.7-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>red5-server</artifactId>
    <name>Red5 :: Server</name>
    <description>The Red5 server</description>
    <packaging>jar</packaging>
    <url>https://github.com/Red5/red5-server</url>
    <organization>
        <name>Red5</name>
        <url>https://github.com/Red5</url>
    </organization>
    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>red5-interest</name>
            <post>https://groups.google.com/forum/?fromgroups#!forum/red5interest</post>
        </mailingList>
    </mailingLists>
    <issueManagement>
        <system>github</system>
        <url>https://github.com/Red5/red5-server/issues</url>
    </issueManagement>
    <scm>
        <url>https://github.com/Red5/red5-server.git</url>
        <connection>scm:git:[email protected]:Red5/red5-server.git</connection>
        <developerConnection>scm:git:[email protected]:Red5/red5-server.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <id>Dominick Accattato</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Paul Gregoire</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Dan Rossi</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Tiago Jacobs</id>
            <email>[email protected]</email>
        </developer>
    </developers>
    <properties>
        <build.dir>target</build.dir>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <red5-io.version>${project.version}</red5-io.version>
        <red5-service.version>${project.version}</red5-service.version>
        <red5-server-common.version>${project.version}</red5-server-common.version>
    </properties>
    <repositories>
        <repository>
            <id>sonatype-snapshots</id>
            <name>Sonatype Snapshots</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
        <repository>
            <id>sonatype-releases</id>
            <name>Sonatype Releases</name>
            <url>http://oss.sonatype.org/content/repositories/releases</url>
        </repository>
    </repositories>
    <build>
        <defaultGoal>install</defaultGoal>
        <directory>${build.dir}</directory>
        <finalName>${finalName}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifest>
                                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                </manifest>
                                <manifestEntries>
                                    <SCM-Revision>${buildNumber}</SCM-Revision>
                                    <Implementation-Build>${buildNumber}</Implementation-Build>
                                </manifestEntries>
                            </archive>
                            <excludes>
                                <exclude>**/org/red5/server/Bootstrap.class</exclude>
                                <exclude>**/org/red5/server/Shutdown.class</exclude>
                                <exclude>**/org/red5/server/jmx/mxbeans/ShutdownMXBean.class</exclude>
                                <exclude>**/org/red5/classloading/**</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.red5</groupId>
            <artifactId>red5-server-common</artifactId>
            <version>${red5-server-common.version}</version>
        </dependency>
        <dependency>
            <groupId>org.red5</groupId>
            <artifactId>red5-io</artifactId>
            <version>${red5-io.version}</version>
            <type>jar</type>
            <exclusions>
                <exclusion>
                    <artifactId>bcprov-jdk15on</artifactId>
                    <groupId>org.bouncycastle</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>mina-core</artifactId>
                    <groupId>org.apache.mina</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>mina-integration-jmx</artifactId>
                    <groupId>org.apache.mina</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>mina-integration-beans</artifactId>
                    <groupId>org.apache.mina</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-beanutils</artifactId>
                    <groupId>commons-beanutils</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-codec</artifactId>
                    <groupId>commons-codec</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-lang3</artifactId>
                    <groupId>org.apache.commons</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-web</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>quartz</artifactId>
                    <groupId>org.quartz-scheduler</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.red5</groupId>
            <artifactId>red5-service</artifactId>
            <version>${project.version}</version>

        </dependency>
    </dependencies>
    <profiles>
        <profile>
            <id>assemble</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.8</version>
                        <executions>
                            <execution>
                                <id>copy-dependencies</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                    <includeScope>compile</includeScope>
                                    <excludeScope>test</excludeScope>
                                    <excludeTransitive>false</excludeTransitive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/server.xml</descriptor>
                            </descriptors>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <!-- this is used for inheritance merges -->
                                <phase>package</phase>
                                <!-- bind to the packaging phase -->
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <finalName>${project.artifactId}</finalName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>milestone</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.8</version>
                        <executions>
                            <execution>
                                <id>copy-dependencies</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-dependencies</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                    <includeScope>compile</includeScope>
                                    <excludeScope>test</excludeScope>
                                    <excludeTransitive>false</excludeTransitive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/milestone.xml</descriptor>
                            </descriptors>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <!-- this is used for inheritance merges -->
                                <phase>package</phase>
                                <!-- bind to the packaging phase -->
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <finalName>${project.artifactId}</finalName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>war</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/war.xml</descriptor>
                            </descriptors>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make-assembly</id>
                                <!-- this is used for inheritance merges -->
                                <phase>package</phase>
                                <!-- bind to the packaging phase -->
                                <goals>
                                    <goal>single</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

red5-service —-> pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.red5</groupId>
        <artifactId>red5-parent</artifactId>
        <version>1.0.7-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>red5-service</artifactId>
    <name>Red5 :: Service</name>
    <description>The Red5 server service daemon</description>
    <packaging>jar</packaging>
    <url>https://github.com/Red5/red5-service</url>
    <organization>
        <name>Red5</name>
        <url>https://github.com/Red5</url>
    </organization>
    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>red5-interest</name>
            <post>https://groups.google.com/forum/?fromgroups#!forum/red5interest</post>
        </mailingList>
    </mailingLists>
    <issueManagement>
        <system>github</system>
        <url>https://github.com/Red5/red5-service/issues</url>
    </issueManagement>
    <scm>
        <url>https://github.com/Red5/red5-service.git</url>
        <connection>scm:git:[email protected]:Red5/red5-service.git</connection>
        <developerConnection>scm:git:[email protected]:Red5/red5-service.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <id>Dominick Accattato</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Paul Gregoire</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Dan Rossi</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Tiago Jacobs</id>
            <email>[email protected]</email>
        </developer>
    </developers>
    <build>
        <defaultGoal>install</defaultGoal>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <configuration>
                            <archive>
                                <manifest>
                                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                </manifest>
                                <manifestEntries>
                                    <SCM-Revision>${buildNumber}</SCM-Revision>
                                    <Implementation-Build>${buildNumber}</Implementation-Build>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/daemon.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <!-- this is used for inheritance merges -->
                        <phase>package</phase>
                        <!-- bind to the packaging phase -->
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <dependencies>
    </dependencies>
</project>

####red5-parent —-> pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <!-- <![CDATA[ Licensed to the Apache Software Foundation (ASF) under one
        or more contributor license agreements. See the NOTICE file distributed with
        this work for additional information regarding copyright ownership. The ASF
        licenses this file to you under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License. You may
        obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
        Unless required by applicable law or agreed to in writing, software distributed
        under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
        OR CONDITIONS OF ANY KIND, either express or implied. See the License for
        the specific language governing permissions and limitations under the License.
        ]]> -->
    <modelVersion>4.0.0</modelVersion>
    <artifactId>red5-parent</artifactId>
    <packaging>pom</packaging>
    <name>Red5 :: Parent</name>
    <description>Parent project for all red5 projects containing dependency management and general info</description>
    <groupId>org.red5</groupId>
    <version>1.0.7-RELEASE</version>
    <url>https://github.com/Red5/red5-parent</url>
    <inceptionYear>2005</inceptionYear>
    <organization>
        <name>Red5</name>
        <url>https://github.com/Red5</url>
    </organization>
    <licenses>
        <license>
            <name>Apache 2</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>red5-interest</name>
            <post>https://groups.google.com/forum/?fromgroups#!forum/red5interest</post>
        </mailingList>
    </mailingLists>
    <scm>
        <url>https://github.com/Red5/red5-parent.git</url>
        <connection>scm:git:[email protected]:Red5/red5-parent.git</connection>
        <developerConnection>scm:git:[email protected]:Red5/red5-parent.git</developerConnection>
    </scm>
    <developers>
        <developer>
            <id>Dominick Accattato</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Paul Gregoire</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Dan Rossi</id>
            <email>[email protected]</email>
        </developer>
        <developer>
            <id>Tiago Jacobs</id>
            <email>[email protected]</email>
        </developer>
    </developers>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>4.2.5.RELEASE</spring.version>
        <mina.version>2.0.13</mina.version>
        <slf4j.version>1.7.18</slf4j.version>
        <logback.version>1.1.6</logback.version>
        <quartz.version>2.2.2</quartz.version>
        <bc.version>1.54</bc.version>
        <junit.version>4.12</junit.version>
        <isoparser.version>1.1.17</isoparser.version>
        <tika.version>1.11</tika.version>
        <ehcache.version>2.6.11</ehcache.version>
        <commons-beanutils.version>1.9.2</commons-beanutils.version>
        <commons-codec.version>1.10</commons-codec.version>
        <commons-lang3.version>3.4</commons-lang3.version>
        <httpclient.version>4.5.2</httpclient.version>
        <httpcore.version>4.4.4</httpcore.version>
        <xerces.version>2.11.0</xerces.version>
        <cglib.version>3.2.0</cglib.version>
        <tomcat.version>8.0.33</tomcat.version>
        <commons-daemon.version>1.0.15</commons-daemon.version>
    </properties>
    <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>sonatype-snapshots</id>
            <name>Sonatype Snapshots</name>
            <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
        <repository>
            <id>sonatype-releases</id>
            <name>Sonatype Releases</name>
            <url>http://oss.sonatype.org/content/repositories/releases</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpclient.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-codec</artifactId>
                    <groupId>commons-codec</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-parent</artifactId>
            <version>${mina.version}</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>${tomcat.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

        <dependency>
            <groupId>uk.org.lidalia</groupId>
            <artifactId>sysout-over-slf4j</artifactId>
            <version>1.0.2</version>
        </dependency>
        <dependency>
            <artifactId>mina-integration-beans</artifactId>
            <groupId>org.apache.mina</groupId>
            <version>${mina.version}</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>${quartz.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-daemon</groupId>
            <artifactId>commons-daemon</artifactId>
            <version>${commons-daemon.version}</version>
        </dependency>

        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>${bc.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>${mina.version}</version>
            <type>bundle</type>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-integration-beans</artifactId>
            <version>${mina.version}</version>
            <type>bundle</type>
        </dependency>
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-integration-jmx</artifactId>
            <version>${mina.version}</version>
            <type>bundle</type>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.mina</groupId>
                    <artifactId>mina-integration-ognl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>${tika.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-parsers</artifactId>
            <version>${tika.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>cxf-rt-rs-client</artifactId>
                    <groupId>org.apache.cxf</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>cdm</artifactId>
                    <groupId>edu.ucar</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>pdfbox</artifactId>
                    <groupId>org.apache.pdfbox</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>opennlp-tools</artifactId>
                    <groupId>org.apache.opennlp</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>junrar</artifactId>
                    <groupId>com.github.junrar</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>grib</artifactId>
                    <groupId>edu.ucar</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>sis-metadata</artifactId>
                    <groupId>org.apache.sis.core</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>sis-utility</artifactId>
                    <groupId>org.apache.sis.core</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>sis-netcdf</artifactId>
                    <groupId>org.apache.sis.storage</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>vorbis-java-core</artifactId>
                    <groupId>org.gagravarr</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>vorbis-java-tika</artifactId>
                    <groupId>org.gagravarr</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>xz</artifactId>
                    <groupId>org.tukaani</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>geoapi</artifactId>
                    <groupId>org.opengis</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>httpservices</artifactId>
                    <groupId>edu.ucar</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jackcess</artifactId>
                    <groupId>com.healthmarketscience.jackcess</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jackcess-encrypt</artifactId>
                    <groupId>com.healthmarketscience.jackcess</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>java-libpst</artifactId>
                    <groupId>com.pff</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>netcdf4</artifactId>
                    <groupId>edu.ucar</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>bcmail-jdk15on</artifactId>
                    <groupId>org.bouncycastle</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>bcpkix-jdk15on</artifactId>
                    <groupId>org.bouncycastle</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-csv</artifactId>
                    <groupId>org.apache.commons</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-exec</artifactId>
                    <groupId>org.apache.commons</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jhighlight</artifactId>
                    <groupId>org.codelibs</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>jmatio</artifactId>
                    <groupId>net.sourceforge.jmatio</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>json</artifactId>
                    <groupId>org.json</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>json-simple</artifactId>
                    <groupId>com.googlecode.json-simple</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi-ooxml</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>poi-scratchpad</artifactId>
                    <groupId>org.apache.poi</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>rome</artifactId>
                    <groupId>rome</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <artifactId>commons-beanutils</artifactId>
            <groupId>commons-beanutils</groupId>
            <version>${commons-beanutils.version}</version>
        </dependency>
        <dependency>
            <artifactId>commons-codec</artifactId>
            <groupId>commons-codec</groupId>
            <version>${commons-codec.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>${xerces.version}</version>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>${ehcache.version}</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.mp4parser</groupId>
            <artifactId>isoparser</artifactId>
            <version>${isoparser.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>
        <dependency>
            <artifactId>commons-beanutils</artifactId>
            <groupId>commons-beanutils</groupId>
            <version>${commons-beanutils.version}</version>
        </dependency>
        <dependency>
            <artifactId>commons-codec</artifactId>
            <groupId>commons-codec</groupId>
            <version>${commons-codec.version}</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>${quartz.version}</version>
        </dependency>
        <dependency>
            <artifactId>bcprov-jdk15on</artifactId>
            <groupId>org.bouncycastle</groupId>
            <version>${bc.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>${tomcat.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5</version>
                <configuration>
                    <compilerVersion>1.8</compilerVersion>
                    <fork>true</fork>
                    <source>1.8</source>
                    <target>1.8</target>
                    <executable>${maven.compiler.executable}</executable>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.3</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <verbose>true</verbose>
                    <failOnError>false</failOnError>
                    <sourcepath>${basedir}/src/main/java</sourcepath>
                    <includeDependencySources>false</includeDependencySources>
                    <dependencySourceIncludes>
                        <dependencySourceInclude>org.red5:*</dependencySourceInclude>
                    </dependencySourceIncludes>
                    <detectOfflineLinks>false</detectOfflineLinks>
                    <stylesheetfile>javadoc.css</stylesheetfile>
                    <links>
                        <link>http://download.oracle.com/javase/7/docs/api</link>
                        <link>http://docs.spring.io/spring/docs/4.0.3.RELEASE/javadoc-api</link>
                        <link>http://www.slf4j.org/api</link>
                        <link>http://logging.apache.org/log4j/1.2/apidocs</link>
                    </links>
                    <tags>
                        <tag>
                            <name>todo</name>
                            <!-- todo tag for all places -->
                            <placement>a</placement>
                            <head>To do:</head>
                        </tag>
                    </tags>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <configuration>
                            <archive>
                                <manifest>
                                    <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                </manifest>
                                <manifestEntries>
                                    <SCM-Revision>${buildNumber}</SCM-Revision>
                                    <Implementation-Build>${buildNumber}</Implementation-Build>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                            <excludeTransitive>true</excludeTransitive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.8.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-scm-plugin</artifactId>
                <version>1.9.4</version>
                <configuration>
                    <connectionType>connection</connectionType>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>3.0.1</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.3</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release</releaseProfiles>
                    <goals>deploy</goals>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.6</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
                <repository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
        </profile>
        <profile>
            <id>updatebuildnumber</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>buildnumber-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>validate</phase>
                                <goals>
                                    <goal>create</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <doCheck>false</doCheck>
                            <doUpdate>false</doUpdate>
                            <shortRevisionLength>5</shortRevisionLength>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

整合tomcat

说明一下:有点模糊的就是为什么不是 red5-server整合tomcat项目,其实说白了,这只是一个jar并且spring管理的bean。所以不能单独整合,只能通过新建的项目然后把red5-server加入即可。 当然新建的项目就是webapp项目了。

由于之前整理好了maven管理jar的关系,所以这次我在red5-parent 直接新建 maven Module 然后给个名字red5 然后选择 maven-archetype-webapp — >next finish 就可以了。如图:

新建立好之后 如下:

  • 然后就进行拷贝了。首先从https://github.com/Red5/red5-examples 会看到 一个子项目 oflaDemo

    直接拷贝源码到我们新建立好的项目如下图:

  • 接着拷贝 oflaDemo war包下的 oflaDemo-web.xml 到我们项目的 resources下面 如图:

    我们的项目如下图

  • 接着拷贝red5-server server包下的conf red5.properties,logback.xml,web.xml 和 webapps下面的 red5-default.xml 和 root包下面的内容(不包括 WEB-INF) 拷贝到我们的项目,red5-default.xml 需要改名字,改成 defaultContext.xml 如下图:

  • 其他的 xml 文件是修改了。直接贴代码如下:

beanRefContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

    <bean
        name="default.context"
        class="org.springframework.context.support.ClassPathXmlApplicationContext" >

        <constructor-arg>

            <list>

                <value>
defaultContext.xml

                </value>

                <value>
red5-common.xml

                </value>

                <value>
red5-core.xml

                </value>
            </list>
        </constructor-arg>
    </bean>

</beans>

red5-common.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd" >

    <!-- This context is shared between all child contexts. -->
    <!-- Server bean -->

    <bean
        id="red5.server"
        class="org.red5.server.Server" />
    <!-- JMX server -->

    <!-- Serializes objects to AMF binary -->

    <bean
        id="serializer"
        class="org.red5.io.object.Serializer" />
    <!-- Deserializes objects from AMF binary -->

    <bean
        id="deserializer"
        class="org.red5.io.object.Deserializer" />
     <!-- Deals with StatusObjects representing statuses like NetConnection.Connect.Success status -->
    <bean id="statusObjectService" class="org.red5.server.net.rtmp.status.StatusObjectService" autowire="byType" />
    <!-- RTMP codec factory -->
<bean id="minaEncoder" class="org.red5.server.net.rtmp.codec.RTMPMinaProtocolEncoder" scope="prototype" />

    <bean id="minaDecoder" class="org.red5.server.net.rtmp.codec.RTMPMinaProtocolDecoder" scope="prototype" />

    <!-- RTMPT codec factory -->

    <bean
        id="rtmptCodecFactory"
        autowire="byType"
        class="org.red5.server.net.rtmpt.codec.RTMPTCodecFactory"
        init-method="init" >
        <property name="baseTolerance" value="${rtmpt.encoder_base_tolerance}" />
        <property name="dropLiveFuture" value="${rtmpt.encoder_drop_live_future}" />
    </bean>
    <!-- Remoting calls codec factory -->

    <bean
        id="remotingCodecFactory"
        autowire="byType"
        class="org.red5.server.net.remoting.codec.RemotingCodecFactory"
        init-method="init" />
    <!-- Streamable file factory -->
<bean id="streamableFileFactory" class="org.red5.server.stream.StreamableFileFactory">
        <property name="services">
            <list>
                <bean id="flvFileService" class="org.red5.server.service.flv.impl.FLVService">
                    <property name="generateMetadata" value="true"/>
                </bean>
                <bean id="mp3FileService" class="org.red5.server.service.mp3.impl.MP3Service"/>
                <bean id="mp4FileService" class="org.red5.server.service.mp4.impl.MP4Service"/>
                <bean id="m4aFileService" class="org.red5.server.service.m4a.impl.M4AService"/>
            </list>
        </property>
    </bean>
    <!-- Thread that writes modified objects to disk periodically -->

    <!-- Handles creation / lookup of shared objects -->

    <bean id="sharedObjectService" class="org.red5.server.so.SharedObjectService">
        <property name="maximumEventsPerUpdate" value="${so.max.events.per.update}"/>
        <property name="persistenceClassName">
            <value>org.red5.server.persistence.FilePersistence</value>
        </property>
        <property name="scheduler">
            <bean class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
                <property name="poolSize" value="${so.scheduler.pool_size}" />
                <property name="waitForTasksToCompleteOnShutdown" value="false"/>
                <property name="daemon" value="true"/>
                <property name="threadNamePrefix" value="SharedObjectScheduler-"/>
            </bean>
        </property>
    </bean>
    <!-- High level access to streams -->

    <bean
        id="streamService"
        class="org.red5.server.stream.StreamService" />
    <!-- High level access to broadcasted streams -->

    <bean
        id="providerService"
        class="org.red5.server.stream.ProviderService" />
    <!-- Provides output to consumers -->

    <bean
        id="consumerService"
        class="org.red5.server.stream.ConsumerService" />
    <!-- Scheduling service -->

    <bean
        id="schedulingService"
        class="org.red5.server.scheduling.QuartzSchedulingService" />
    <!-- Use injection to setup thread pool for remoting clients -->

    <bean
        id="remotingClient"
        class="org.red5.server.net.remoting.RemotingClient" >

        <property
            name="poolSize"
            value="2" />
    </bean>
    <!--
    Now we can load the cache engine, only one may be enabled at a time. If no-caching is required select the
    NoCacheImpl. Three other implementations based on EhCache, WhirlyCache, and Red5Cache are also available.

    -->
 <bean id="object.cache" class="org.red5.cache.impl.NoCacheImpl"/>
    <!-- Cache to use for keyframe metadata. -->

    <bean id="keyframe.cache" class="org.red5.io.CachingFileKeyFrameMetaCache">
        <property name="maxCacheEntry" value="${keyframe.cache.entry.max}" />
    </bean>
    <!--
        Represents FLV files
        Use injection to set the cache impl to be used with flvs

    -->

    <bean
        id="flv.impl"
        class="org.red5.io.flv.impl.FLV" >

        <property name="cache" >

            <ref bean="object.cache" />
        </property>
    </bean>
    <!-- Use injection to set the keyframe cache for FLV files -->
 <bean id="flvreader.impl" class="org.red5.io.flv.impl.FLVReader">
        <property name="keyFrameCache">
            <ref bean="keyframe.cache"/>
        </property>
    </bean>
    <!-- Use injection to set the keyframe cache for MP3 files -->

    <bean
        id="mp3reader.impl"
        class="org.red5.io.mp3.impl.MP3Reader" >

        <property name="frameCache" >

            <ref bean="keyframe.cache" />
        </property>
    </bean>
    <!-- Use injection to set the buffer type for reading FLV files -->
    <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod">
            <value>org.red5.io.flv.impl.FLVReader.setBufferType</value>
        </property>
        <!-- Three buffer types are available ‘auto‘, ‘heap‘, and ‘direct‘ -->
        <property name="arguments" value="auto"/>
    </bean>
    <!-- Use injection to set the buffer size for reading FLV files -->
 <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod">
            <value>org.red5.io.flv.impl.FLVReader.setBufferSize</value>
        </property>
        <!-- Three buffer types are available ‘auto‘, ‘heap‘, and ‘direct‘ -->
        <property name="arguments" value="4096"/>
    </bean>
    <!--
         Executor that will be used to schedule stream playback to keep
        the client buffer filled.

    -->

    <bean
        id="streamExecutor"
        class="java.util.concurrent.ScheduledThreadPoolExecutor" >

        <constructor-arg value="16" />

        <property
            name="maximumPoolSize"
            value="64" />
    </bean>
    <!--
         ClientBroadcastStream and PlaylistSubscriberStream
        that will be used by RTMPConnection and maybe other classes.
        These beans are lazy-init because most likely server will need
        to be up and running before we can get a smart implementation
        of these streams

    -->
 <bean id="playlistSubscriberStream" scope="prototype" lazy-init="true" class="org.red5.server.stream.PlaylistSubscriberStream">
        <!-- Check for buffer underruns every X ms and generate NetStream.Play.InsufficientBW accordingly.
             Set to 0 to disable. Be careful not to set this value too small to avoid network congestion.
          -->
        <property name="bufferCheckInterval" value="${subscriberstream.buffer.check.interval}"/>
        <!-- A NetStream.Play.InsufficientBW message is generated if more than X messages are queued for sending on the connection.
             This value will also control the maximum pending messages on the server. To use a smaller value on slow connections
             to get smaller delay for downstream server commands.
          -->
        <property name="underrunTrigger" value="${subscriberstream.underrun.trigger}"/>
    </bean>

    <bean
        id="clientBroadcastStream"
        class="org.red5.server.stream.ClientBroadcastStream"
        lazy-init="true"
        scope="prototype" />

</beans>

red5-core.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:lang="http://www.springframework.org/schema/lang"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd">

    <!-- DO NOT FORMAT THIS FILE IN ECLIPSE -->

    <bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
        <property name="customEditors">
            <map>
                <entry key="java.net.SocketAddress" value="org.apache.mina.integration.beans.InetSocketAddressEditor" />
            </map>
        </property>
    </bean>

    <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:/red5.properties" />
    </bean>

    <!-- RTMP -->
    <bean id="rtmpScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
        <property name="poolSize" value="${rtmp.scheduler.pool_size}" />
        <property name="daemon" value="true" />
        <property name="waitForTasksToCompleteOnShutdown" value="true" />
        <property name="threadNamePrefix" value="RTMPConnectionScheduler-" />
    </bean>

    <bean id="messageExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="${rtmp.executor.core_pool_size}" />
        <property name="maxPoolSize" value="${rtmp.executor.max_pool_size}" />
        <property name="queueCapacity" value="${rtmp.executor.queue_capacity}" />
        <property name="daemon" value="false" />
        <property name="waitForTasksToCompleteOnShutdown" value="true" />
        <property name="threadNamePrefix" value="RTMPConnectionExecutor-" />
    </bean>

    <bean id="deadlockGuardScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler">
        <property name="poolSize" value="${rtmp.deadlockguard.sheduler.pool_size}" />
        <property name="daemon" value="false" />
        <property name="waitForTasksToCompleteOnShutdown" value="true" />
        <property name="threadNamePrefix" value="DeadlockGuardScheduler-" />
    </bean>

    <!-- RTMP connection manager -->
    <bean id="rtmpConnManager" class="org.red5.server.net.rtmp.RTMPConnManager" />

    <!-- RTMP Handler -->
    <bean id="rtmpHandler" class="org.red5.server.net.rtmp.RTMPHandler">
        <property name="server" ref="red5.server" />
        <property name="statusObjectService" ref="statusObjectService" />
        <!-- Enable this to allow unvalidated connections -->
        <property name="unvalidatedConnectionAllowed" value="true" />
    </bean>

    <!-- RTMP Mina IO Handler -->
    <bean id="rtmpMinaIoHandler" class="org.red5.server.net.rtmp.RTMPMinaIoHandler">
        <property name="handler" ref="rtmpHandler" />
    </bean>

    <!-- RTMP Mina Transport -->
    <bean id="rtmpTransport" class="org.red5.server.net.rtmp.RTMPMinaTransport" init-method="start" destroy-method="stop">
        <property name="ioHandler" ref="rtmpMinaIoHandler" />
        <property name="addresses">
            <list>
                <value>${rtmp.host}:${rtmp.port}</value>
                <!-- You can now add additional ports and ip addresses
                <value>${rtmp.host}:1936</value>
                 -->
            </list>
        </property>
        <property name="ioThreads" value="${rtmp.io_threads}" />
        <property name="sendBufferSize" value="${rtmp.send_buffer_size}" />
        <property name="receiveBufferSize" value="${rtmp.receive_buffer_size}" />
        <property name="trafficClass" value="${rtmp.traffic_class}" />
        <property name="backlog" value="${rtmp.backlog}" />
        <property name="tcpNoDelay" value="${rtmp.tcp_nodelay}" />
        <property name="keepAlive" value="${rtmp.tcp_keepalive}" />
        <property name="thoughputCalcInterval" value="${rtmp.thoughput_calc_interval}" />
        <property name="enableDefaultAcceptor" value="${rtmp.default_acceptor}" />
        <!-- Pool settings are used when the default acceptor is disabled -->
        <property name="initialPoolSize" value="${rtmp.initial_pool_size}" />
        <property name="maxPoolSize" value="${rtmp.max_pool_size}" />
        <property name="maxProcessorPoolSize" value="${rtmp.max_processor_pool_size}" />
        <property name="executorKeepAliveTime" value="${rtmp.executor_keepalive_time}" />
        <!-- This is the interval at which the sessions are polled for stats. If mina monitoring is not enabled, polling will not occur. -->
        <property name="minaPollInterval" value="${jmx.mina.poll.interval}" />
        <property name="enableMinaMonitor" value="${jmx.mina.monitor.enable}" />
        <property name="enableMinaLogFilter" value="${mina.logfilter.enable}" />
    </bean>

    <!-- RTMP Mina Connection -->
    <bean id="rtmpMinaConnection" scope="prototype" class="org.red5.server.net.rtmp.RTMPMinaConnection">
        <!-- Executor for scheduled tasks -->
        <property name="scheduler" ref="rtmpScheduler" />
        <!-- Executor for incoming messages -->
        <property name="executor" ref="messageExecutor" />
        <!-- Deadlock guard executor -->
        <property name="deadlockGuardScheduler" ref="deadlockGuardScheduler" />
        <!-- Ping clients every X ms. Set to 0 to disable ghost detection code. -->
        <property name="pingInterval" value="${rtmp.ping_interval}" />
        <!-- Disconnect client after X ms of not responding. -->
        <property name="maxInactivity" value="${rtmp.max_inactivity}" />
        <!-- Max. time in milliseconds to wait for a valid handshake. -->
        <property name="maxHandshakeTimeout" value="${rtmp.max_handshake_time}" />
        <!-- Default server bandwidth per connection -->
        <property name="defaultServerBandwidth" value="${rtmp.default_server_bandwidth}" />
        <!-- Default client bandwidth per connection -->
        <property name="defaultClientBandwidth" value="${rtmp.default_client_bandwidth}" />
        <!-- Client bandwidth limit type: 0 = hard, 1 = soft, 2 = dynamic -->
        <property name="limitType" value="${rtmp.client_bandwidth_limit_type}" />
        <!-- Bandwidth detection. If "false" the server will NOT initiate a check -->
        <property name="bandwidthDetection" value="${rtmp.bandwidth_detection}" />
        <!-- Maximum time allowed for a single RTMP packet to be processed -->
        <property name="maxHandlingTimeout" value="${rtmp.max_handling_time}" />
        <!-- Specify the size of queue that will trigger audio packet dropping, disabled if it‘s 0 -->
        <property name="executorQueueSizeToDropAudioPackets" value="${rtmp.executor.queue_size_to_drop_audio_packets}" />
        <!-- Concurrent collection tweaks -->
        <property name="channelsInitalCapacity" value="${rtmp.channel.initial.capacity}" />
        <property name="channelsConcurrencyLevel" value="${rtmp.channel.concurrency.level}" />
        <property name="streamsInitalCapacity" value="${rtmp.stream.initial.capacity}" />
        <property name="streamsConcurrencyLevel" value="${rtmp.stream.concurrency.level}" />
        <property name="pendingCallsInitalCapacity" value="${rtmp.pending.calls.initial.capacity}" />
        <property name="pendingCallsConcurrencyLevel" value="${rtmp.pending.calls.concurrency.level}" />
        <property name="reservedStreamsInitalCapacity" value="${rtmp.reserved.streams.initial.capacity}" />
        <property name="reservedStreamsConcurrencyLevel" value="${rtmp.reserved.streams.concurrency.level}" />
    </bean>

    <!-- RTMPT -->
    <!-- RTMPT Handler -->
    <bean id="rtmptHandler" class="org.red5.server.net.rtmpt.RTMPTHandler" autowire="byType">
        <property name="codecFactory" ref="rtmptCodecFactory" />
    </bean>

    <!-- Use injection to store RTMPT handler in servlet -->
    <bean id="rtmptServlet" class="org.red5.server.net.rtmpt.RTMPTServlet">
        <property name="manager" ref="rtmpConnManager" />
        <property name="handler" ref="rtmptHandler" />
        <!-- Increasing this value results in better stream performance, but also increases the latency -->
        <property name="targetResponseSize" value="${rtmpt.target_reponse_size}" />
        <!-- Response for /fcs/ident2 requests -->
        <!--
        <property name="ident2" value="127.0.0.1" />
        -->
    </bean>

    <!-- RTMPT Connection -->
    <bean id="rtmptConnection" scope="prototype" class="org.red5.server.net.rtmpt.RTMPTConnection">
        <!-- Executor for scheduled tasks -->
        <property name="scheduler" ref="rtmpScheduler" />
        <!-- Executor for incoming messages -->
        <property name="executor" ref="messageExecutor" />
        <!-- Deadlock guard executor -->
        <property name="deadlockGuardScheduler" ref="deadlockGuardScheduler" />
        <!-- Ping clients every X ms. Set to 0 to disable ghost detection code. -->
        <property name="pingInterval" value="${rtmpt.ping_interval}" />
        <!-- Disconnect client after X ms of not responding. -->
        <property name="maxInactivity" value="${rtmpt.max_inactivity}" />
        <!-- Max. time in milliseconds to wait for a valid handshake. -->
        <property name="maxHandshakeTimeout" value="${rtmpt.max_handshake_time}" />
        <!-- Maximum incoming messages to process at a time per client -->
        <property name="maxInMessagesPerProcess" value="${rtmpt.max_in_msg_process}" />
        <!-- Maximum amount of time in milliseconds to wait before allowing an offer to fail on incoming or outgoing queues -->
        <property name="maxQueueOfferTime" value="${rtmpt.max_queue_offer_time}" />
        <!-- Maximum offer attempts before failing on incoming or outgoing queues -->
        <property name="maxQueueOfferAttempts" value="${rtmpt.max_queue_offer_attempts}" />
        <!-- Maximum time allowed for a single RTMP packet to be processed -->
        <property name="maxHandlingTimeout" value="${rtmp.max_handling_time}" />
        <!-- Specify the size of queue that will trigger audio packet dropping, disabled if it‘s 0 -->
        <property name="executorQueueSizeToDropAudioPackets" value="${rtmp.executor.queue_size_to_drop_audio_packets}" />
        <!-- Concurrent collection tweaks -->
        <property name="channelsInitalCapacity" value="${rtmp.channel.initial.capacity}" />
        <property name="channelsConcurrencyLevel" value="${rtmp.channel.concurrency.level}" />
        <property name="streamsInitalCapacity" value="${rtmp.stream.initial.capacity}" />
        <property name="streamsConcurrencyLevel" value="${rtmp.stream.concurrency.level}" />
        <property name="pendingCallsInitalCapacity" value="${rtmp.pending.calls.initial.capacity}" />
        <property name="pendingCallsConcurrencyLevel" value="${rtmp.pending.calls.concurrency.level}" />
        <property name="reservedStreamsInitalCapacity" value="${rtmp.reserved.streams.initial.capacity}" />
        <property name="reservedStreamsConcurrencyLevel" value="${rtmp.reserved.streams.concurrency.level}" />
    </bean>

    <!-- RTMPS -->
    <!-- Notes to self:
         https://www.openssl.org/docs/apps/ciphers.html#TLS-v1.2-cipher-suites
         https://www.sslshopper.com/article-how-to-disable-weak-ciphers-and-ssl-2-in-tomcat.html

    <bean id="rtmpsMinaIoHandler" class="org.red5.server.net.rtmps.RTMPSMinaIoHandler">
        <property name="handler" ref="rtmpHandler" />
        <property name="keystorePassword" value="${rtmps.keystorepass}" />
        <property name="keystoreFile" value="${rtmps.keystorefile}" />
        <property name="truststorePassword" value="${rtmps.truststorepass}" />
        <property name="truststoreFile" value="${rtmps.truststorefile}" />
        <property name="cipherSuites">
            <array>
                <value>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</value>
                <value>TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384</value>

                <value>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</value>
                <value>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</value>
                <value>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</value>
                <value>TLS_ECDHE_RSA_WITH_RC4_128_SHA</value>
                <value>TLS_RSA_WITH_AES_128_CBC_SHA256</value>
                <value>TLS_RSA_WITH_AES_128_CBC_SHA</value>
                <value>TLS_RSA_WITH_AES_256_CBC_SHA256</value>
                <value>TLS_RSA_WITH_AES_256_CBC_SHA</value>
                <value>SSL_RSA_WITH_RC4_128_SHA</value>
            </array>
        </property>
        <property name="protocols">
            <array>
                <value>TLSv1</value>
                <value>TLSv1.1</value>
                <value>TLSv1.2</value>
            </array>
        </property>
    </bean>

    <bean id="rtmpsTransport" class="org.red5.server.net.rtmp.RTMPMinaTransport" init-method="start" destroy-method="stop">
        <property name="ioHandler" ref="rtmpsMinaIoHandler" />
        <property name="addresses">
            <list>
                 <value>${rtmps.host}:${rtmps.port}</value>
            </list>
        </property>
        <property name="ioThreads" value="${rtmp.io_threads}" />
        <property name="tcpNoDelay" value="${rtmp.tcp_nodelay}" />
    </bean>
-->
    <!-- Enable when you need it. - - >
        <bean id="rtmpProxyTransport" class="org.red5.server.net.rtmp.RTMPMinaTransport" init-method="start" destroy-method="stop">
                <property name="ioHandler" ref="debugProxyIoHandler" />
                <property name="address" value="${proxy.source_host}" />
                <property name="port" value="${proxy.source_port}" />
                <property name="ioThreads" value="${rtmp.io_threads}" />
                <property name="tcpNoDelay" value="${rtmp.tcp_nodelay}" />
        </bean>

        <bean id="debugProxyIoHandler"
                class="org.red5.server.net.proxy.DebugProxyHandler">
                <property name="codecFactory" ref="rtmpCodecFactory" />
                <property name="forward" value="${proxy.destination_host}:${proxy.destination_port}" />
                <property name="dumpTo" value="./webapps/dump/" />
        </bean>
-->
</beans>

到这里就集成成功了:

使用 jdk 1.8 tomcat 8以上

启动tomcat:

地址

http://localhost:8080/red5/demos/publisher.html

时间: 2024-10-11 19:09:25

red5 1.0.7 集成tomcat 并且 进行整合 官方例子oflaDemo的相关文章

Eclipse集成Tomcat的配置步骤实例

使用Eclipse开发B/S结构Web应用时,必须使用Web应用服务器,常见的应用服务器有Tomcat, Jboss, WebLogic, WebSphere, SUN System Application Server等. 这次需要在Eclipse开发工具中进行struts2的测试,才刚发现自己机器上的Eclipse没有集成Tomcat,自己到tomcatforEclipse的插件的网上直接下载了一个,按照提供的说明一下子就配成了.看看我的配置步骤吧. 1.Eclipse的安装.这个是从Ecl

eclipse集成tomcat日志文件输出配置

eclipse集成tomcat日志文件输入配置 2015-07-21 00:13 1072人阅读 评论(0) 收藏 举报  分类: tomcat(1)  eclipse Where can I view Tomcat log files in Eclipse? I'm not sure if you were after catalina.out or one of the other logs produced by Tomcat. But, if you're after the catal

centos5.4_x64 red5 1.0安装部署

一.centos5.4_x64 默认安装后会集成jdk1.6 java -version 如果显示当前安装的版本号为1.6,则不需要再安装. 二.安装Red5 1.创建临时目录: cd /usr/localmkdir temp 2.下载red5包 wget http://www.red5.org/downloads/red5/1_0/red5-1.0.0.tar.gz 3.解压缩,并拷贝到/usr/local/red5目录下tar zxvf red5-1.0.0.tar.gzmv red5-1.

热修复框架Tinker的从0到集成之路

热修复框架Tinker的从0到集成之路 转载请标明出处: http://blog.csdn.net/lisdye2/article/details/54411727 本文出自:[Alex_MaHao的博客] 项目中的源码已经共享到github,有需要者请移步[Alex_MaHao的github] 2015年10月,QQ空间提出了热修复方案,一时间热修复风靡Android界,阿里的AndFix,360的插件形式,开源的NUWA等,都分别提出了自己的热修复实现方案,2016年微信推出了自己的热修复框

IntelliJ IDEA 集成Tomcat后找不到HttpServlet问题(2015年06月13日)

今天第一次用IntelliJ IDEA集成Tomcat做东西玩,在IntelliJ IDEA中配置好Tomcat之后,开始写Servlet,结果却找不到HttpServlet类,原因就是IntelliJ IDEA没有自动把servlet-api.jar包导入,需要我们手动导入,下面是解决方案 添加之后再项目的External Libraries目录中也能看到导入的包了

IIS 7.0的集成模式和经典模式

IIS7.0中的Web应用程序有两种配置模式:经典模式和集成模式.经典模式是为了与之前的版本兼容,使用ISAPI扩展来调用ASP.NET运行库, 原先运行于IIS6.0下的Web应用程序迁移到IIS7.0中只要将应用程序配置成经典模式,代码基本不用修改就可以正常运行.集成模式是一种统 一的请求处理管道,它将ASP.NET请求管道与IIS核心管道组合在一起,这种模式能够提供更好的性能,能够实现配置和管理的模块化,而且 增加了使用托管代码模块扩展IIS时的灵活性.如果老的Web应用程序运行于IIS7

eclipse集成tomcat修改字符集参数

问题: 在eclipse 4.4(Luna)中集成tomcat时,直接修改原tomcat目录中的配置文件,不起作用. 有时,我们会修改字符集参数为utf-8,以解决中文乱码问题,改动之后依然乱码-- 分析: elcipse集成tomcat时,会脱离原目录,在新目录workspace ? .metadata ? .plugins ? org.eclipse.wst.server.core ? tmp0下生成conf.logs.temp.webapps.work.wtpwebapps目录.运行时,自

eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法

参考:http://blog.csdn.net/fjssharpsword/article/details/50635049 在eclipse集成tomcat开发web时,java类引入的jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环境中. 问题:在 web应用 右键->Run as -> Run on Server情况下,会找不到Java Resources下Libraries的jar,应该是eclipse工

asp.net core 2.0 webapi集成signalr

在博客园也很多年了,一直未曾分享过什么东西,也没有写过博客,但自己也是汲取着博客园的知识成长的: 这两天想着不能这么无私,最近.NET CORE貌似挺流行的,闲来无事也自己搞了个asp.net core signalr 博客园里面也有人在.net core 2.0下面集成了signalr,但是是集成在同一个项目里面的,但是大家都知道我们很多的项目都是分离的: 而且signalr涉及到连接数和内存资源的占用问题,如果都集成在一个项目里面当访问量多大的时候容易造成网站访问缓慢,具体原因就不多说了 所