I use Axis 1.4 to generate java classes from http://10.0.0.22/_vti_bin/Copy.asmx
I use following code to upload file to SharePoint site:
I get 'Object reference not set to an instance of an object' error.Code:private String uploadFile(String site, String username, String password, String library, String filename) { String tag = ""; try { CopySoapStub stub = SharePointWSDL.newCopy(new URL(site + "/_vti_bin/Copy.asmx"), new CopyLocator()); stub.setUsername(username); stub.setPassword(password); String name = (new File(filename)).getName(); String tagPath = site + "/" + library + "/" + name; FieldInformation[] fis = new FieldInformation[1]; UnsignedIntHolder uih = new UnsignedIntHolder(); CopyResultCollectionHolder crch = new CopyResultCollectionHolder(); fis[0] = new FieldInformation(); fis[0].setInternalName("Title"); fis[0].setDisplayName(name); fis[0].setType(FieldType.Text); fis[0].setValue(name); stub.copyIntoItems(null, new String[] { tagPath }, fis, readFile(filename), uih, crch); boolean success = true; for (int i = 0; i < crch.value.length; i++) { if (CopyErrorCode._Success.equals(crch.value[i].getErrorCode().getValue())) continue; logger.error(crch.value[i].getErrorCode().getValue() + " : " + crch.value[i].getErrorMessage()); logger.info(crch.value[i].getDestinationUrl()); success = false; } if (success) { tag = tagPath; } } catch (Exception e) { logger.error("", e); } return tag; } private byte[] readFile(String filename) { File file = new File(filename); byte[] tag = new byte[0]; try { tag = new byte[(int)file.length()]; InputStream is = new FileInputStream(file); int offset = 0; int numRead = 0; while (offset < tag.length && (numRead = is.read(tag, offset, tag.length - offset)) >= 0) { offset += numRead; } } catch (Exception e) { logger.error("", e); } return Base64.encode(tag).getBytes(); }
How can I upload file to SharePoint site using generated classes from Axis 1.4?


Reply With Quote

Bookmarks