문제

편집 : 분명히 내 첫 번째 질문은 정말로 이해하기 쉽지 않았습니다. 답이 유용하기를 바랍니다. :)

Red5 서버에 Axis2를 설치하려고 시도했으며 모든 것이 정상으로 진행되었으며 Red5의 RTMPClient를 사용하여 사용자 정의 웹 서비스에서 RED5 앱 속성에 액세스하고 Axis2를 통해 노출되었습니다.

문제는 2 레벨 서버가 있고 웹 서비스에서 SharedObjects 등으로 직접 액세스 할 수 없다는 것입니다. 비누 서비스 클래스를 통해 직접.

나는 내 스스로 비누 서버를 만들어야한다고 생각합니다 (아마도 Axis의 Simplehttpserver 또는 SimpleAxis2Server를 사용합니까 ??)

어떤 아이디어 ??

나 자신을 설명했으면 좋겠어 ... 미리 감사드립니다

도움이 되었습니까?

해결책

해결되었습니다 !!! Axis2를 사용하는 대신 Jax-Ws를 사용했습니다.

나는 웹 서비스로 사용할 수업을 만들었고 내 공유를 노출시켰다.

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 ()에 호출을 추가하여 응용 프로그램이 실행되는 즉시 웹 서비스를 실행합니다. 웹 서비스에서 애플리케이션 범위에 액세스 할 수 있도록 red5ws 생성자에게 매개 변수로 전달합니다.

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 앱을 다시 시작하면 웹 서비스의 WSDL 파일을 ACCES 할 수 있어야합니다.

http://localhost:8080/WebService/red5ws?WSDL
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top