Question

Edit: Évidemment, ma première question n’était pas vraiment facile à comprendre, j’espère que la réponse est utile:)

J'ai essayé d'installer Axis2 sur le serveur Red5 et tout s'est bien passé. J'ai accédé aux propriétés de l'application Red5 à partir d'un service Web personnalisé à l'aide de RTMPClient de Red5 et les ai exposées via Axis2.

Le problème, c’est que, de cette façon, j’ai un serveur à 2 niveaux et que je n’ai pas vraiment d’accès direct du Webservice aux objets partagés, etc ... Ce que j’aimerais faire est de pouvoir accéder à certains Les applications Red5 fonctionnent directement via la classe de service SOAP.

Je suppose que je devrai créer moi-même le serveur SOAP (peut-être en utilisant SimpleHTTPServer ou SimpleAxis2Server d'Axis?)

Des idées?

J'espère m'être expliqué ... Et merci d'avance

Était-ce utile?

La solution

résolu !!! Au lieu d’utiliser Axis2, j’ai utilisé JAX-WS, ce dont j’avais vraiment besoin.

J'ai créé une classe à utiliser en tant que WebService et à exposer mes 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);
    }
}

Ensuite, j'ai ajouté un appel à Endpoint.publish () sur la fonction appStart de MyApplications pour exécuter WebService dès que l'application est exécutée. Je le passe en tant que paramètre au constructeur Red5WS pour pouvoir accéder aux applications à partir du service 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();
    }
}

Après avoir compilé l'application Red5, il est indispensable d'utiliser wsgen pour créer les classes WS nécessaires.

wsgen –cp . my.package.Red5WS

Une fois l'application Red5 redémarrée, vous devriez pouvoir accéder au fichier WSDL du service Web via:

http://localhost:8080/WebService/red5ws?WSDL
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top