0

编辑:显然我的第一个问题不是很容易理解,我希望答案是有用的:)

我尝试在 Red5 服务器上安装 Axis2,一切正常,我使用 Red5 的 RTMPClient 从自定义 Web 服务访问 Red5 应用程序属性,并通过 Axis2 公开它们。

问题是这样做我有一个 2 级服务器,我并没有真正从 web 服务直接访问共享对象等......我想做的是能够访问一些 Red5 应用程序功能直接通过 SOAP 服务类。

我想我必须自己创建 SOAP 服务器(可能使用 Axis 的 SimpleHTTPServer 或 SimpleAxis2Server??)

有任何想法吗??

我希望我解释了自己......并提前感谢

4

1 回答 1

0

解决!!!我没有使用 Axis2,而是使用了我真正需要的 JAX-WS。

我创建了一个用作 WebService 的类并公开了我的 SharedObjects

package my.package;
import javax.jws.WebService;
@WebService
public class Red5WS{
    MyApplication app = null;
    public Game(){
        /* Needed but it can be empty */
    }
    public Game(MyApplication app){
        this.app = app;
    }
    public String getAttribute(String SOname, String attrName){
        ISharedObject so = app.getSharedObject(this.app.getScope(), SOname,true);
        return so.getAttribute(attrName);
    }
}

然后,我在 MyApplications appStart 函数上添加了对 Endpoint.publish() 的调用,以便在应用程序运行后立即运行 WebService。我将此作为参数传递给 Red5WS 构造函数,以便能够从 Web 服务访问应用程序范围:

package my.package;
import javax.xml.ws.Endpoint;
import org.red5.server.adapter.ApplicationAdapter;
public class MyApplication extends ApplicationAdapter{
    @Override
    public boolean appStart (IScope app){
        Endpoint.publish(
            "http://localhost:8080/WebService/red5ws",
            new Red5WS(this));
        }
        return super.appStart();
    }
}

编译 Red5 应用程序后,必须使用 wsgen 创建所需的 WS 类。

wsgen –cp . my.package.Red5WS

重新启动 Red5 应用程序后,您应该能够通过以下方式访问 Web 服务的 WSDL 文件:

http://localhost:8080/WebService/red5ws?WSDL
于 2009-06-22T11:13:40.440 回答