2014-03-24 33 views
1

我的Java代碼addAttachment錯誤,而使用Java

import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.util.Vector; 
import helma.xmlrpc.*; 

public class test { 

    private final static String server_url = 
     "http://confluence.xyz.com:8080/rpc/xmlrpc"; 

    public static void main (String [] args) { 
     try { 

      XmlRpcClient server = new XmlRpcClient(server_url); 

      Vector<Object> params = new Vector<Object>(2); 
      params.add("user"); 
      params.add("pass"); 

      String token = (String) server.execute("confluence2.login", params); 
      System.out.println(token); 

      Vector<Object> page = new Vector<Object>(3); 
      page.add(token); 
      page.add("~username"); 
      page.add("test_page"); 

      Object token1 = server.execute("confluence2.getPage", page); 
      System.out.println(token1.hashCode()); 


      String fileName = "C:/New folder/a.jpeg"; 
      String contentType = "image/jpeg"; 

      Vector<Object> attachment = new Vector<Object>(2); 
      attachment.add("a.jpeg"); 
      attachment.add(contentType); 
      System.out.println(attachment); 

      byte[] bytes = Files.readAllBytes(Paths.get(fileName)); 
      System.out.println(bytes); 

      Vector<Object> attach = new Vector<Object>(4); 
      attach.add(token); 
      attach.add(token1.hashCode()); 
      attach.add(attachment); 
      attach.add(bytes); 
      System.out.println(attach); 
      server.execute("confluence2.addAttachment", attach); 

     } 
     catch (Exception exception) { 
      System.err.println("JavaClient: " + exception.toString()); 
     } 
    } 
} 

一切正常,除了在網上,其中 「addAttachment」 被稱爲精,

錯誤我得到的是

JavaClient: helma.xmlrpc.XmlRpcException: java.lang.NoSuchMethodException: com.sun.proxy.$Proxy2104.addAttachment(java.lang.String, int, java.util.Vector, [B) 

任何人都可以幫助我與任何其他圖書館,我應該使用。看來helma.xmlrpc沒有addAttachment方法

回答

0

我使用了org.apache.xmlrpc.client.XmlRpcClient而不是helma,但概念應該是相同的。這不是說「helma.xmlrpc沒有addAttachment方法」,它只是用一個錯誤的參數調用addAttachment()。嘗試與https://developer.atlassian.com/confdev/confluence-rest-api/confluence-xml-rpc-and-soap-apis/remote-confluence-methods

addAttachment列出適當的參數(字符串標記,長內容識別,附件附件,字節[] attachmentData)

所以對Apache XML-RPC,我的部分代碼如下所示調用它:

//add attachment to the page 
    byte[] bytes = FileUtils.readFileToByteArray(new File(FILE_TO_ATTACH)); 
    Map<String, String> attachInfo = new HashMap<String, String>(); 
    attachInfo.put("fileName", FILENAME);  
    attachInfo.put("contentType", CONTENT_TYPE); 
    attachInfo.put("comment", COMMENT); 

    //actually add it now 
    client.execute("confluence1.addAttachment", new Object[]{token, PAGEID, attachInfo, bytes});