2009-06-19 2 views
0

편집을 Red5의의 SharedObjects를 노출하는 방법 : 분명히 내 첫 번째 질문이 이해하기 정말 쉽지 않았다, 나는 희망 나는 대답은 : 나는 Red5의 서버에 Axis2와 설치를 시도SOAP를 통해

유용하고 모든 것을 확인했다 Red5의 RTMPClient를 사용하여 사용자 정의 웹 서비스에서 Red5 응용 프로그램 속성에 액세스하고 Axis2를 통해 노출했습니다.

문제는 내가 2 레벨 서버를 가지고 있고 실제로 웹 서비스에서 sharedobjects 등으로 직접 액세스하지 못한다는 것입니다 ... 내가하고 싶은 것은 액세스 할 수 있어야한다는 것입니다 일부 Red5 앱은 SOAP 서비스 클래스를 통해 직접 작동합니다.

은 내가

어떤 아이디어 (어쩌면 축의 SimpleHTTPServer 또는 SimpleAxis2Server을 ?? 사용) 내 자신의 SOAP 서버를 만들어야합니다 가정 ??

나는 나 자신을 설명하겠습니다 ... 그리고 감사

답변

0

가 해결 사전에! Axis2 대신에 필자가 정말로 필요로하는 JAX-WS를 사용했습니다.

나는 WebService를 같이 사용하고 내 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); 
    } 
} 
다음

응용 프로그램이 실행 될 때 나는 즉시 WebService를 실행하는 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의 응용 프로그램을 컴파일 한 후에는 필요한 WS 클래스를 생성하기 위해 wsgen의를 사용하는 것이 필수입니다.

http://localhost:8080/WebService/red5ws?WSDL 
:
wsgen –cp . my.package.Red5WS 

일단 당신이를 통해 웹 서비스의 WSDL 파일을 액세서 할 수 있어야 Red5의 응용 프로그램을 다시 시작
관련 문제