我对 java和java Server 世界都是全新的......但我对面向对象编程有很好的了解(17 年)。我的问题是:
为什么我必须调用 ant 才能使其工作(见下文,如果您不感兴趣,请跳过我的问题 ^_^ )?
这就是我想要的:创建一个可以进行视频会议的简单应用程序(= 服务器接收一个客户端视频流并将其分派给 X 客户端)。我希望它是免费的(Adobe Server 大约需要 10000 美元)。我找到的唯一解决方案是 Red5(见那里)
我已经下载并安装了 0.7 版本。以下是我为能够成功编译 Red5 的 java 应用程序所做的步骤:
- 下载并安装 (Windows XP) 最新版本 (0.7)
- 在安装文件夹中手动下载和复制一些在 0.7 安装中被遗忘的文件(与 v0.6 版本相比,猜猜是哪些)(
ivy.xml
如果我记得的话) - 进入
[Red5 path]\webapps
文件夹。复制/粘贴tutorial
文件夹。 - 将文件夹重命名为
myapp
. - 编辑该文件夹中的所有 xml 文件,搜索字符串
tutorial
并将其重命名为myapp
- 这是我所做的,但它不起作用:用 javac 编译:
javac -classpath "[Red5 path]\red5.jar" -d "[Red5 path]\webapps\myapp\WEB-INF\classes" Application.java javac -classpath "[Red5 path]\red5.jar" -d "[Red5 path]\webapps\myapp\WEB-INF\classes" TestService.java
- 一切正常,但一旦我启动 Flex 客户端,来自服务器的答案是“无效的应用程序”
经过多次尝试,我发现删除所有内容,但该代码使一切正常:
package myapp; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IConnection; import org.red5.server.api.IScope; /* myapp */ public class Application extends ApplicationAdapter {
}public String sayHello(Object[] params){ return "got : " + params[0].toString(); }
然后我希望能够追踪。
我编写了在 Red5 示例中运行的代码:
package myapp;
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.red5.server.adapter.ApplicationAdapter; import org.red5.server.api.IConnection; import org.red5.server.api.IScope;
public class Application extends ApplicationAdapter {
protected static Logger log = LoggerFactory.getLogger(Application.class); public String sayHello(Object[] params){ log.info("I got your name: "+params[0].toString()); return "I got your name: " + params[0].toString(); }
}
重新启动 Red5 服务器后:我总是得到服务器的响应:“无效的应用程序”
- 然后我下载了ant,解压到
[Red5 path]
- 我创建了一个新文件
[Red5 path]\webapps\myapp\WEB-INF\build.xml
- 我已经把那个xml放在里面了:
<project name="Projet myapp" default="compile" basedir=".">
<target name="clean" description="Clean output directories">
</target>
<target name="compile" depends="clean">
<javac srcdir="./src" destdir="./classes" source="1.6" classpath="C:\Program Files\Red5\red5.jar" >
</javac>
</target>
<target name = "jar" depends ="compile">
<echo message ="Creating jar..."/>
<jar destfile="./lib/myapp.jar" basedir="./classes"/>
<echo message ="Done."/>
</target>
</project>
- 运行一个 shell,然后输入:
cd [Red5 path]\webapps\myapp\WEB-INF ......\apache-ant-1.7.1\bin\ant jar
- 现在一切正常!
- 这是问题!
- 我不明白的是:
为什么我必须调用 ant 才能使其工作?