Frage

Edit: Natürlich meine erste Frage war nicht wirklich einfach zu verstehen, ich hoffe, die Antwort ist sehr nützlich:)

Ich habe versucht, die Installation von Axis2 auf dem Red5 Server und alles war OK, zugegriffen ich die Red5 App Eigenschaften aus einem benutzerdefinierten Web-Service des RTMPClient mit Red5 und setzte sie durch Axis2.

Das Problem ist, dass es auf diese Weise tun ich einen 2 Ebenen-Server haben, und ich habe nicht wirklich einen direkten Zugang von der Webservice zu den Shared, etc ... Was würde Ich mag einige der Lage sein, zu tun ist, zuzugreifen Red5 apps Funktionen direkt über die SOAP-Service-Klasse.

Ich glaube, ich werde den SOAP-Server auf meinem eigenen erstellen haben

(vielleicht Achse des Simple oder SimpleAxis2Server ?? verwenden)

Irgendwelche Ideen ??

Ich hoffe, ich erklärte mich ... Und Dank im Voraus

War es hilfreich?

Lösung

Gelöst !!! Statt Axis2 zu verwenden, habe ich verwendet, JAX-WS das ist, was ich wirklich gebraucht wird.

Ich habe eine Klasse zu verwenden, wie WebService erstellt und meine Shared aussetzen

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);
    }
}

Dann habe ich einen Anruf () auf MyApplications APPSTART Funktion Endpoint.publish die WebService, sobald die Anwendung ausgeführt wird, ausgeführt werden. Ich gehe diese als Parameter an den Konstruktor Red5WS der Lage sein, Anwendungen Umfang von dem Web-Dienst zuzugreifen:

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();
    }
}

Nach dem Red5 app kompiliert, es ist ein Muss, um die wsgen zu verwenden, um die benötigten WS Klassen zu erstellen.

wsgen –cp . my.package.Red5WS

neu gestartet, sobald die Red5 App sollten Sie Web-Service WSDL-Datei acces durch Lage sein:

http://localhost:8080/WebService/red5ws?WSDL
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top