Pregunta

Editar: Obviamente mi primera pregunta no fue realmente fácil de entender, espero que la respuesta sea útil :)

Intenté instalar Axis2 en el servidor Red5 y todo salió bien, accedí a las propiedades de la aplicación Red5 desde un servicio web personalizado usando RTMPClient de Red5 y las expuse a través de Axis2.

El problema es que al hacerlo de esa manera tengo un servidor de 2 niveles y realmente no tengo acceso directo desde el servicio web a los objetos de sharedo, etc. Lo que me gustaría hacer es poder acceder a algunos Las aplicaciones Red5 funcionan directamente a través de la clase de servicio SOAP.

Supongo que tendré que crear el servidor SOAP por mi cuenta (¿tal vez usando Axis's SimpleHTTPServer o SimpleAxis2Server ??)

¿Alguna idea?

Espero haberme explicado ... Y gracias de antemano

¿Fue útil?

Solución

Resuelto !!! En lugar de usar Axis2, he usado JAX-WS, que es lo que realmente necesitaba.

He creado una clase para usar como WebService y exponer mis 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);
    }
}

Luego agregué una llamada a Endpoint.publish () en la función MyApplications appStart para ejecutar el WebService tan pronto como se ejecuta la aplicación. Paso esto como un parámetro al constructor Red5WS para poder acceder al alcance de las aplicaciones desde el servicio 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();
    }
}

Después de compilar la aplicación Red5, es imprescindible usar wsgen para crear las clases WS necesarias.

wsgen –cp . my.package.Red5WS

Una vez reiniciada la aplicación Red5, debería poder acceder al archivo WSDL del servicio web a través de:

http://localhost:8080/WebService/red5ws?WSDL
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top