가 해결 사전에! 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의 응용 프로그램을 다시 시작