Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法向jenkins中的远程API公开数据_Java_Jenkins_Xml Parsing - Fatal编程技术网

Java 无法向jenkins中的远程API公开数据

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

我用@ExporteBean注释的类有getApi方法,也用@Exported注释到我的方法

@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>
更详细的分析见:


谢谢

仅链接的答案往往不被鼓励,请从链接文章中提取相关信息并发布。