aspose file tools*
The moose likes Web Services and the fly likes web service client call issue Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "web service client call issue" Watch "web service client call issue" New topic
Author

web service client call issue

Revanth Gopi
Greenhorn

Joined: Apr 05, 2013
Posts: 1
I am new to web services technology and I am having some issue with calling a web service using the URL. Please help. I am getting the 405: Method not allowed error. I am sending a multi-part request to the webservice. The first part is a XML and other part is file.

import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.File;
import java.io.FileInputStream;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;

import javax.xml.bind.DatatypeConverter;
import javax.xml.parsers.*;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

public class UploadAttachment {
ublic static void main( String[] args ) throws Exception {

String strRSSinuityWebServiceBase = "http://host:port/MyService/";
String strServiceName = "attachments";
final String urlString = strRSSinuityWebServiceBase + strServiceName ;
final String userName = "TESTUSER";
final String password = "TESTUSE";
String lineEnd = "\r\n";

int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;

java.io.File sourceFile = new java.io.File(sourcefile);
bufferSize = (int) sourceFile.lRSSth();



// open url connection
URL url = new URL( urlString );
HttpURLConnection con = (HttpURLConnection) url.openConnection();

con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);

byte[] encodedPassword = ( userName + ":" + password ).getBytes();
String encoded = DatatypeConverter.printBase64Binary(encodedPassword);
String strBoundry = "bJYQE";
con.setRequestProperty( "Authorization", "Basic " + encoded );

con.setRequestProperty("Content-Type","multipart/form-data;boundary="+strBoundry);

StringBuffer strBuffer1 = new StringBuffer();
strBuffer1.append("--"+strBoundry);
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Disposition: form-data; name=\"xml\"");
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Type: text/xml");
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Transfer-Encoding: binary");
strBuffer1.append(lineEnd);
strBuffer1.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
strBuffer1.append(lineEnd);
strBuffer1.append("<RSS:Attachment xmlns:RSS=\"http://www.server.com/ServiceWebInterface_1.2\">");
strBuffer1.append(lineEnd);
strBuffer1.append("<RSSOcNumber>TRM010357</RSSOcNumber>");
strBuffer1.append(lineEnd);
strBuffer1.append("<RSSOCType>Stability Report</RSSOCType>");
strBuffer1.append(lineEnd);
strBuffer1.append("<RSS:Comments>Auto Uploaded file</RSS:Comments>");
strBuffer1.append(lineEnd);
strBuffer1.append("</RSS:Attachment>");
strBuffer1.append(lineEnd);
strBuffer1.append("--"+strBoundry);
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Disposition: form-data; name=\"content\"; filename=\"ABC.pdf\"");
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Type: application/octet-stream");
strBuffer1.append(lineEnd);
strBuffer1.append("Content-Transfer-Encoding: binary");
strBuffer1.append(lineEnd);

String strContent = strBuffer1.toString();

int fileLenth = strContent.lRSSth();

fileLenth = fileLenth+bufferSize;

con.setRequestProperty( "Content-Length", fileLenth+"");


OutputStream reqStream = con.getOutputStream();

reqStream.write(strContent.getBytes());

System.out.println("Inside the method strContent ");


FileInputStream fileInputStream = new FileInputStream(sourceFile);
bytesAvailable = fileInputStream.available();

buffer = new byte[bufferSize];

bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0) {
reqStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
System.out.println("Inside the method strContent 2 "+con.getResponseMessage());

System.out.println(con.getResponseCode() + ":" + con.getResponseMessage()) ;

con.disconnect();
}
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: web service client call issue
 
Similar Threads
Unstable internet causes program to slow down
image file upload problem
require suggestion - FastSMS encoding problem
Uploading Image from Java Desktop App to Server
java.net.ProtocolException: Does not support output