Ok, I think scripting API is not meant for this, moving to rest API.
Anyway, getting HTTP.500 while doing POST, no problem with GET.
public void sendPost(ConfigurationDTO config) throws Exception {
// client target is: http://localhost:8810/rest
ResteasyWebTarget target = getTarget();
target.path("configurations");
JAXBContext context = JAXBContext.newInstance(ConfigurationDTO.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
// this here produces exactly what I need
marshaller.marshal(config, new File("test.xml"));
StringWriter stringWriter = new StringWriter();
marshaller.marshal(config, stringWriter);
MultipartFormDataOutput dataOutput = new MultipartFormDataOutput();
dataOutput.addFormData("file", new FileInputStream(new File("test.xml")), MediaType.APPLICATION_OCTET_STREAM_TYPE);
GenericEntity<MultipartFormDataOutput> entity = new GenericEntity<MultipartFormDataOutput>(dataOutput) {};
Response response = target.request().post( Entity.entity(entity, MediaType.MULTIPART_FORM_DATA_TYPE));
response.close();
}
No problem with auth because client is set up the same way as for GET methods, and it works with this.
Config is probably correct:
<com.pmease.quickbuild.model.Configuration>
<disabled>false</disabled>
<parent>8844</parent>
<name>Test-COPY</name>
<versionManagerDOM>
<com.pmease.quickbuild.setting.configuration.version.UseSpecifiedVersion revision="0.0.0">
<version>1.0.1</version>
</com.pmease.quickbuild.setting.configuration.version.UseSpecifiedVersion>
</versionManagerDOM>
<statusDate>2014-09-30T12:35:35.000Z</statusDate>
<pluginSettingDOMs/>
<data/>
<stepDOMs>
<entry>
<string>master</string>
<com.pmease.quickbuild.stepsupport.SequentialStep revision="0.12.2.2">
<name>master</name>
<enabled>true</enabled>
<executeCondition class="com.pmease.quickbuild.setting.step.executecondition.AllPreviousSiblingStepsSuccessful"/>
<nodeMatcher class="com.pmease.quickbuild.setting.step.nodematcher.ServerNodeMatcher"/>
<nodePreference class="com.pmease.quickbuild.setting.step.nodepreference.PreferLeastLoadedNode"/>
<timeout>0</timeout>
<preExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<postExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<repetitions/>
<childStepNames>
<string>get groups</string>
<string>Publish report</string>
</childStepNames>
<successCondition class="com.pmease.quickbuild.setting.step.successcondition.AllChildStepsSuccessful"/>
<environments/>
</com.pmease.quickbuild.stepsupport.SequentialStep>
</entry>
<entry>
<string>Publish report</string>
<com.pmease.quickbuild.plugin.htmlreport.HtmlReportPublishStep revision="0.12.3">
<name>Publish report</name>
<enabled>true</enabled>
<executeCondition class="com.pmease.quickbuild.setting.step.executecondition.AllPreviousSiblingStepsSuccessful"/>
<nodeMatcher class="com.pmease.quickbuild.setting.step.nodematcher.ParentNodeMatcher"/>
<nodePreference class="com.pmease.quickbuild.setting.step.nodepreference.PreferLeastLoadedNode"/>
<timeout>0</timeout>
<preExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<postExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<repetitions/>
<reportName>Report</reportName>
<fromPath>.</fromPath>
<filePatterns>index.html</filePatterns>
<startPage>index.html</startPage>
<order>1</order>
</com.pmease.quickbuild.plugin.htmlreport.HtmlReportPublishStep>
</entry>
<entry>
<string>get groups</string>
<com.pmease.quickbuild.plugin.basis.ScriptStep revision="0.12.1">
<name>get groups</name>
<enabled>true</enabled>
<executeCondition class="com.pmease.quickbuild.setting.step.executecondition.AllPreviousSiblingStepsSuccessful"/>
<nodeMatcher class="com.pmease.quickbuild.setting.step.nodematcher.ParentNodeMatcher"/>
<nodePreference class="com.pmease.quickbuild.setting.step.nodepreference.PreferLeastLoadedNode"/>
<timeout>0</timeout>
<preExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<postExecuteAction class="com.pmease.quickbuild.setting.step.executeaction.NoAction"/>
<repetitions/>
<script>
groovy:
import com.pmease.quickbuild.CacheManager
</script>
</com.pmease.quickbuild.plugin.basis.ScriptStep>
</entry>
</stepDOMs>
<repositoryDOMs/>
<aggregationDOMs/>
<variables/>
<notifications/>
<promotions/>
</com.pmease.quickbuild.model.Configuration>
ERROR com.pmease.quickbuild.rest.providers.GenericExceptionMapper - Error serving restful request.
com.sun.jersey.api.NotFoundException
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:991)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632)
at com.pmease.quickbuild.rest.RestServlet.service(RestServlet.java:48)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at com.pmease.quickbuild.Quickbuild$DisableTraceFilter.doFilter(Quickbuild.java:1035)