UnsubscribeForwardUIResource

UnsubscribeForwardUIResource

在reSTLet中得到这个错误:

ForwardUIApplication ; Exception while instantiating the target server resource.
java.lang.InstantiationException: me.unroll.forwardui.server.ForwardUIServer$UnsubscribeForwardUIResource

我确切地知道为什么。这是因为我的构造函数如下所示:
public UnsubscribeForwardUIResource(MySQLConnectionPool connectionPool) {

ReSTLet像这样访问资源:
router.attach(Config.unsubscribeUriPattern(), UnsubscribeForwardUIResource.class);

问题是我实际上需要那个ctor参数。如何使它可访问? (请注意,我没有使用任何IOC框架,只是使用了许多ctor参数,但这实际上是一个IOC模式)。

最佳答案

您可以使用上下文将上下文属性传递给资源实例。

ServerResource API doc:



因此,在附加时间:

router.getContext().getAttributes().put(CONNECTION_POOL_KEY, connectionPool);
router.attach(Config.unsubscribeUriPattern(), UnsubscribeForwardUIResource.class);

在您的UnsubscribeForwardUIResource类中,您必须将初始化代码从构造函数移至de doInit方法:
public UnsubscribeForwardUIResource() {
    //default constructor can be empty
}

protected void doInit() throws ResourceException {

     MySQLConnectionPool connectionPool = (MySQLConnectionPool) getContext().getAttributes().get(CONNECTION_POOL_KEY);

    // initialization code goes here
}

09-04 10:53