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 に答える