Java 无法向jenkins中的远程API公开数据
我用@ExporteBean注释的类有getApi方法,也用@Exported注释到我的方法Java 无法向jenkins中的远程API公开数据,java,jenkins,xml-parsing,Java,Jenkins,Xml Parsing,我用@ExporteBean注释的类有getApi方法,也用@Exported注释到我的方法 @Extension @ExportedBean public class Environments { public Api getApi() { return new Api(this); } @Exported(name="lable") public Set<LabelAtom> getLabels(){ return Jenkins.getInst
@Extension
@ExportedBean
public class Environments {
public Api getApi() {
return new Api(this);
}
@Exported(name="lable")
public Set<LabelAtom> getLabels(){
return Jenkins.getInstance().getLabelAtoms();
}
@Exported
public List<ToolDescriptor<?>> getToolDescriptors(){
List<ToolDescriptor<?>> descriptors = new ArrayList<ToolDescriptor<?>>();
for (ToolDescriptor<?> descriptor : ToolInstallation.all()) {
if (descriptor.getInstallations().length>0){
descriptors.add(descriptor);
}
}
return descriptors;
}
但是当移动到时,我得到的输出是空白xml
<myURL...>/api/xml
但我希望xml的值显示在同一URL上
如下
<supportedEnvironments>
<lable/>
<lable/>
<lable/>
<lable/>
<lable/>
<lable/>
<lable/>
<toolDescriptor/>
<toolDescriptor/>
<toolDescriptor/>
<toolDescriptor/>
<toolDescriptor/>
</supportedEnvironments>
如何才能编辑xml的值:
请使类环境从插件扩展。另外,在pom文件中,工件Id的名称是插件名称。在Jenkins插件中只能有一个从插件扩展而来的类
代码修改如下所示:
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.export.Exported;
import org.kohsuke.stapler.export.ExportedBean;
import hudson.Extension;
import hudson.Plugin;
import hudson.model.Api;
import hudson.model.labels.LabelAtom;
import hudson.tools.ToolDescriptor;
import hudson.tools.ToolInstallation;
@Extension
@ExportedBean
public class Environments **extends Plugin** {
public Api getApi() {
return new Api(this);
}
@Exported(name="lable")
public Set<LabelAtom> getLabels(){
return Jenkins.getInstance().getLabelAtoms();
}
@Exported
public List<ToolDescriptor<?>> getToolDescriptors(){
List<ToolDescriptor<?>> descriptors = new ArrayList<ToolDescriptor<?>>();
for (ToolDescriptor<?> descriptor : ToolInstallation.all()) {
if (descriptor.getInstallations().length>0){
descriptors.add(descriptor);
}
}
return descriptors;
}
}
通过浏览器调用以下URL:
我在Firefox浏览器中获得了以下输出:
<environments><lable/></environments>
更详细的分析见:
谢谢 仅链接的答案往往不被鼓励,请从链接文章中提取相关信息并发布。