I am trying to add global settings for my plugin. I think I have the form
jelly correct, as the form loads. When I fill out data in the global
settings and try to save, I get the following error:
javax.servlet.ServletException: net.sf.json.JSONException:
JSONObject["consulHostUrl"] not found.
The configure method is here:
@Override
public boolean configure(StaplerRequest req, JSONObject formData)
throws FormException {
LOGGER.warning(formData.toString());
consulHostUrl = formData.getString("consulHostUrl"); //errors
here
req.bindJSON(this, formData);
save();
return super.configure(req, formData);
}
And, before the error, I log the formData object, and I see:
{"consul-kv-builder":{"consulHostUrl":"http://localhost:8500","consulAclToken":"","consulApiUri":"","consulTimeoutConnection":"","consulTimeoutResponse":"","consulTestUri":"","consulTestResponseCode":""}}
The global.jelly is:
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler"
xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson"
xmlns:f="/lib/form">
<f:section title="Global Consul Settings" name="consul-kv-builder">
<f:entry title="Host URL" help="help-hostUrl.html">
<f:textbox field="consulHostUrl" name="consulHostUrl" />
</f:entry>
<f:entry title="ACL Token" help="help-token.html">
<f:textbox field="consulAclToken" name="consulAclToken" value="" />
</f:entry>
<f:entry title="API URI (/v1/kv/)" help="help-urlOverride.html">
<f:textbox field="consulApiUri" name="consulApiUri" />
</f:entry>
<f:entry title="Connection Timeout (10000)"
help="help-timeoutConnection.html">
<f:textbox field="consulTimeoutConnection"
name="consulTimeoutConnection" />
</f:entry>
<f:entry title="Response Timeout (30000)"
help="help-timeoutResponse.html">
<f:textbox field="consulTimeoutResponse"
name="consulTimeoutResponse" />
</f:entry>
<f:entry title="Test URI (/status/leader)" help="help-testUri.html">
<f:textbox field="consulTestUri" name="consulTestUri" />
</f:entry>
<f:entry title="Test Response Code (200)"
help="help-testResponseCode.html">
<f:textbox field="consulTestResponseCode"
name="consulTestResponseCode" />
</f:entry>
<f:validateButton
title="${%Test Connection}" progress="${%Testing...}"
method="testConnection"
with="consulHostUrl,consulTestUri,consulTestResponseCode" />
</f:section>
</j:jelly>
And the *Test Connection* works as well.
I know I am doing something stupid, but I just haven't stumbled on it yet.
--
You received this message because you are subscribed to the Google Groups
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-dev/592cb495-4239-49a6-9e35-9f09c0f8a521%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.