没有状态变量的动作

Action with no state variable

有没有办法在 Cling 中指定一个没有关联的 @UpnpStateVariable 的 @UpnpAction?。我试过类似

public class ApplicationExecutionServer {
    @UpnpAction    
    public void anAction() {
        // do something
    }
}

但收到错误消息,指出操作 "anAction" 未关联到状态变量。

遗憾的是,无法进行 'headless' 操作。但是,您可以有一个惰性变量。例如,我有一个这样的服务,它使用假定的字符串 setter 来模拟一个实际上不涉及原始状态变量的动作。

@UpnpStateVariable(defaultValue="0", sendEvents=false)
private String clientHandshakeData = null;


/**
 * "Headless" action with ephemeral/transient state variable.
 * @param handshakeData
 */
@UpnpAction
public void setClientHandshakeData(@UpnpInputArgument(name="NewClientHandshakeDataValue")String handshakeData){
    clientHandshakeData = handshakeData;
    processCurrentHandshakeData();
    clientHandshakeData = null;

}

本质上 'clientHandshakeData' 是短暂的,我希望每次调用都有一个新值(新客户端连接)。每次有新的连接,我'process'当前的握手数据,立即置为null。