비누를 통해 RED5의 공유 공동 주사를 노출시키는 방법
-
06-07-2019 - |
문제
편집 : 분명히 내 첫 번째 질문은 정말로 이해하기 쉽지 않았습니다. 답이 유용하기를 바랍니다. :)
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
제휴하지 않습니다 StackOverflow