Upload servlet + swing
Hello everyone,
I'm deploying a servlet to upload files to my web server i'm using Tomcat 4.1but i have few problems,
1)Although the servlet work fine when it been deployed into JBuilder(embeded Tomcat 4.1) when i used the standalone tomcat apart from JBuilder the servlet
seems to work fine (I'm taking the proper response,no exceptions) i can't find the uploaded files into the Tomcat server.(May be a file permision for read or write?)
2)The client which sents the request is a browser.How can send a request from a application(swing)?
Any suggestion or resource would be much too helpful.
Thanks
1) in your uploading code, try to determine what path the code is using to store files. Put some debug output in there. Chances are there is a mistake in your code that you failed to notice and is showing up in this particular instance.
2) if you are talking about file uploads, you need a class that can generate a multipart HTTP request. This class will probably also be able to send it, but otherwise you can use URLConnection to send data to a specific url.
Similar Messages
-
HELP! File Upload Servlet and Internet Explorer
Hello people. I hope this is an easy problem to solve...
I have a servlet upload program that works using Mozilla browser (www.mozilla.org), but for some reason it doesn't work using Microsoft IE. The servlet is also using the servlet upload API from Apache (commons).
I'm using IE version 6.0.2800.1106 in a Win98SE host computer. I get a cannot find path specified error message (see below). At work, I also get the same error message using IE, but don't know what version. The OS is XP. Unfortunately, at work, I can't install Mozilla browser (or any software-company policy) to see if Mozilla works there too. I would've like to have tested to see if the upload program worked on Mozilla on a truly remote computer.
So I figured, it must be a IE configuration issue, but darn it!! I began by resetting IE to default settings, but still have the problem, I played around with several different combinations of settings in "Tools"-->"Internet Options...", and I still get the error message. Someone PLEASE HELP ME!!!
Dunno, if it will help, I've also pasted the upload servlet source code below and the html file that's calling the upload servlet, but you still need the Apache commons file upload API.
Trust me on this one folks, for some reason it works for Mozilla, but not for IE. With IE, I can at least access web server, and therefore, the html file that calls the upload servlet , so I don't think it's a Tomcat configuration issue (version 5.0). I actually got the code for the file upload servlet from a book relatively new in the market (printed in 2003), and it didn't mention any limitations as far as what browser to use or any browser configuration requirements. I have e-mailed the authors, but they probably get a ton of e-mails...
Anyone suggestions?
Meanwhile, I will try to install other free browsers and see if the file upload program works for them too.
ERROR MESSAGE:
"HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: C:\TOMCAT\webapps\MyWebApps\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:43)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause
java.io.FileNotFoundException: C:\TOMCAT\webapps\MyWebApp\files\C:\WINDOWS\Desktop\myfile.zip (The system cannot find the path specified)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.(FileOutputStream.java:176)
java.io.FileOutputStream.(FileOutputStream.java:131)
org.apache.commons.fileupload.DefaultFileItem.write(DefaultFileItem.java:392)
com.jspbook.FileUploadCommons.doPost(FileUploadCommons.java:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
Apache Tomcat 5.0.16"
FILE UPLOAD SERVLET source code:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import java.util.*;
public class FileUploadCommons extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.print("File upload success. <a href=\"/MyWebApp/files/");
out.print("\">Click here to browse through all uploaded ");
out.println("files.</a><br>");
ServletContext sc = getServletContext();
String path = sc.getRealPath("/files");
org.apache.commons.fileupload.DiskFileUpload fu = new
org.apache.commons.fileupload.DiskFileUpload();
fu.setSizeMax(-1);
fu.setRepositoryPath(path);
try {
List l = fu.parseRequest(request);
Iterator i = l.iterator();
while (i.hasNext()) {
FileItem fi = (FileItem)i.next();
fi.write(new File(path, fi.getName()));
catch (Exception e) {
throw new ServletException(e);
out.println("</html>");
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
HTML PAGE that calls the upload servlet:
<html>
<head>
<title>Example HTML Form</title>
</head>
<body>
<p>Select a file to upload or browse
currently uploaded files.</p>
<form action="http://##.##.##.####/MyWebApp/FileUploadCommons"
method="post" enctype="multipart/form-data">
File: <input type="file" name="file"><br>
<input value="Upload File" type="submit">
</form>
</body>
</html>
Thanks in advance for any assistance.
-DanI'm guessing what is happening is that Mozilla tells the servlet "here comes the file myfile.zip". The servlet builds a file name for it:
String path = sc.getRealPath("/files");
// path is now C:\TOMCAT\webapps\MyWebApps\files\
fi.write(new File(path, fi.getName()));
// append myfile.zip to "path", making it C:\TOMCAT\webapps\MyWebApps\files\myfile.zipIE, however, tells "here comes the file C:\WINDOWS\Desktop\myfile.zip". Now imagine what the path+filename ends up being...
So what you want to do is something along the lines of (assuming Windoze):
public static String basename(String filename)
int slash = filename.lastIndexOf("\\");
if (slash != -1)
filename = filename.substring(slash + 1);
// I think Windows doesn't like /'s either
int slash = filename.lastIndexOf("/");
if (slash != -1)
filename = filename.substring(slash + 1);
// In case the name is C:foo.txt
int slash = filename.lastIndexOf(":");
if (slash != -1)
filename = filename.substring(slash + 1);
return filename;
fi.write(new File(path, basename(fi.getName()));
....You can make the file name check more bomb proof if security is an issue. Long file names trying to overflow something in the OS, NUL characters, Unicode, forbidden names in Windos (con, nul, ...), missing file name, ... -
Good tutorial for using the orielly file upload servlet
Hello all,
I just downloaded the packages from the orielly site and I am interested in using the upload servlet. I have the oreilly servlet book but it doesnt get into much detail about how to use the servlet. I have not used servlets before so I need basic advice or a tutorial on using the MultipartRequest servlet. Where can I find this? I checked servlets.com's FAQ but it doesnt have much about how to set it up.
TIA!Thanks but I want to try to use the orielly servlet class I need some practice using servlets as I am relying on jsp's too much.
Anybody have any pointers on the orielly upload servlet and how to use it. -
Session tracking for File Upload Servlet
Hey Friends,
I am developing a File Upload servlet and I need your help in certain matters .I have taken the servlet code from java-edge.com and am modifying it to give custom behaviour.I have a main page for upload (form upload)(lets call it form 1).If the file to be uploaded already exists on the server then a page is generated by the server saying that file already exists.(form 2)Now it is here(in form 2) that I want to provide an extra button which when submitted would recall the same servlet /or maybe another one and would provide the user for overriding the existing file.
Now as per the code I would set the Override flag to be false in the second form and false in the main form .
Given the case that it is a form based uploading servlet how do I maintain the user session when going to the next form or how do i pass the variables of the first form into second form .
I am also facing another problem that is how do i manage multiple file uploads at a time .This basic system allows only one file per upload .
P.S If someone could also throw some light on how to use the com.oreilly servlet (the latest version) it would be lovely but for now I want to focus on developing the current oneHi Jocelyn,
I want to apologize firstly for the delay in my response.
I was seriously bogged down due to certain circumstances and so couldnt reply.Thanks a million for your prompt reply.I'll post the Html content here and you will find the servlet code as is at the following U.R.L
http://www.java-edge.com/Viewcode.asp?Value=serv012
Form1:
<HTML>
<HEAD>
<TITLE> Upload </TITLE>
</HEAD>
<BODY >
<h2>Upload Your File!</h2>
<form ENCTYPE="multipart/form-data" action="http://localhost:8080/servlet/Upload" method=post>
click <b> browse </b>to select the file <br>
<b> File:</b>
<input type="FILE" name="Filename" value="" MAXLENGTH=255 size=50><br>
Click here to upload!<input type=submit value=Upload>
<input type=hidden name=Directory value="G:/Workspace/Upload/">
<input type=hidden name=SuccessPage value="G:/Workspace/successpage.html">
<input type=hidden name="OverWrite" value="false">
<input type=hidden name="OverWritePage" value="">
</form>
</BODY>
</HTML>
Form 2
<HTML>
<HEAD>
<TITLE> Upload </TITLE>
</HEAD>
<BODY >
<h2>Upload Your File!</h2>
<form ENCTYPE="multipart/form-data" action="http://localhost:8080/servlet/Upload" method=post>
click <b> browse </b>to select the file <br>
<b> File:</b>
<input type="FILE" name="Filename" value="" MAXLENGTH=255 size=50><br>
Click here to upload!<input type=submit value=Upload>
<input type=hidden name=Directory value="G:/Workspace/Upload/">
<input type=hidden name=SuccessPage value="G:/Workspace/successpage.html">
<input type=hidden name="OverWrite" value="true">
<input type=hidden name="OverWritePage" value="G:/Workspace/overwritepage.html">
</form>
</BODY>
</HTML>
Now in Form 2 I would add another button which when clicked would prompt the user if he wishes to overwrite the page.
I am also posting the servlet code although I am sure u would prefer reading the one on the site
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Upload extends HttpServlet
static final int Max = 102400;// max. size of the file can be 100K
String path;// stores path
String msg;// store message of success
//init method is called when servlet is first loaded
public void init(ServletConfig config)throws ServletException
super.init(config);
if(path == null)
path = "G:/Workspace/Upload/";
if(msg == null)
msg = "File successfully uploaded. Check out!";
public void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException
ServletOutputStream sos = null;
DataInputStream dis = null;
FileOutputStream fos = null;
try
resp.setContentType("text/plain");// return type of response is being set as plain
sos = resp.getOutputStream();// gets handle to the output stream
catch(IOException e)
System.out.println(e);
return;
try
String contentType = req.getContentType();// gets client's content type that should be multipart/form-data
if(contentType!=null && contentType.indexOf("multipart/form-data")!= -1)
// gets handle to the input stream to get the file to be uploaded from client
dis = new DataInputStream(req.getInputStream());
// gets length of the content data
int Length = req.getContentLength();
if(Length>Max)// length of the content data is compared with max size set
sos.println("sorry! file too large");
sos.flush();
return;
//to store the contents of file in byte array
byte arr[] = new byte[Length];
int dataRead = 0;
int totalData = 0;
while(totalData <Length)
dataRead = dis.read(arr,totalData,Length);
totalData += dataRead;
String data = new String(arr);//byte array converted to String
arr = null;
// gets boundary value
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex+1,contentType.length());
String dir = "";
if(data.indexOf("name=Directory")>0)// the type ""Directory"" is searched in the web page
dir = data.substring(data.indexOf("name=Directory"));
//gets directory
// the directory higher in the directory tree cannot be selected
if(dir.indexOf("..")>0)
sos.println("Error- the directory higher in the directory tree cannot be selected");
return;
String successPage="";
if(data.indexOf("name=\"SuccessPage\"")>0)// the type ""SuccessPage"" is searched in the web page
successPage =data.substring(data.indexOf("name=\"SuccessPage\""));
// gets successpage
String overWrite="";
if(data.indexOf("name=\"OverWrite\"")>0)// the type ""Overwrite"" is searched in the web page
overWrite =data.substring(data.indexOf("name=\"OverWrite\""));
overWrite = overWrite.substring(overWrite.indexOf("\n")+1);
overWrite = overWrite.substring(overWrite.indexOf("\n")+1);
overWrite = overWrite.substring(0,overWrite.indexOf("\n")-1);//gets overwrite flag
else
//overWrite = "false";
String overWritePage ="";
if(data.indexOf("name=\"OverWritePage\"")>0)// the type ""OverwritePage"" is searched in the web page
// ensures same file is not uploaded twice
overWritePage =data.substring(data.indexOf("name=\"OverWritePage\""));
overWritePage = overWritePage.substring(overWritePage.indexOf("\n")+1);
overWritePage = overWritePage.substring(overWritePage.indexOf("\n")+1);
overWritePage = overWritePage.substring(0,overWritePage.indexOf("\n")-1);// // gets overwritepage
//gets upload file name
String file =data.substring(data.indexOf("filename=\"")+10);
file = file.substring(0,file.indexOf("\n"));
file = file.substring(file.lastIndexOf("\\")+1,file.indexOf("\""));
int position;//upload file's position
position =data.indexOf("filename=\"");//find position of upload file section of request
position =data.indexOf("\n",position)+1;//find position of content-disposition line
position =data.indexOf("\n",position)+1;//find position of content-type line
position =data.indexOf("\n",position)+1;//find position of blank line
int location =data.indexOf(boundary,position)-4;//find position of next boundary marker
data =data.substring(position,location);// uploaded file lies between position and location
String fileName = new String(path + dir + file);// the complete path of uploadad file
File check = new File(fileName);
/*************************CASE OVERRIDE ************************************/
//String overwrite=req.getParameter("OverWrite");
if(check.exists())// checks for existence of file
if(overWrite.equals("false"))
if(overWritePage.equals(""))
sos.println("Sorry ,file already exists");
//return;
else
//overWritePage="G:/Workspace/overwritepage.html";
fos = new FileOutputStream(fileName);
fos.write(data.getBytes(),0,data.length());
//resp.sendRedirect(overWritePage);
sos.println("File Overridden");
//return;
File checkDir = new File(path + dir);
if(!checkDir.exists())//checks for existence of directory
checkDir.mkdirs();
fos = new FileOutputStream(fileName);
fos.write(data.getBytes(),0,data.length());
sos.println("File successfully uploaded");
if(check.exists())
if(overWrite.equals("true"))
fos = new FileOutputStream(fileName);
fos.write(data.getBytes(),0,data.length());
if(successPage.equals(""))
sos.println(msg);
sos.println("File successfully uploaded");// if success HTML page URL not received
else
successPage="G:/Workspace/successpage.html";
resp.sendRedirect(successPage);
else// incase request is not multipart
sos.println("Not multipart");
}//END OF TRY BLOCK
catch(Exception e)
try
System.out.println(e);
sos.println("unexpected error");
catch(Exception f)
System.out.println(f);
finally
try
fos.close();// file output stream closed
catch(Exception f)
System.out.println(f);
try
dis.close();// input stream to client closed
catch(Exception f)
System.out.println(f);
try
sos.close();// output stream to client closed
catch(Exception f)
System.out.println(f);
}//END OF DOPOST METHOD
} //END OF CLASS
Jocelyn the above code may have tid bit errors which u could understand.But I hope u get the overall idea of whats going on -
Error while running Java program which call a file upload servlet
Hi all,
I have a java program which calls a servlet and sends the file to be uploaded by the servlet. I used Jbuilder to create java program and servlet program. I compiled both the programs and compilation suceeded and my class files are avaialbe in
WEB-INF/classes/content directory. But now I am trying to run the Java program(this contains main method) from the command prompt, which should inturn call my servlet.(I have web.xml file inside WEB-INF dir). But I receive the following error
C:\tomcat5.5.15\apache-tomcat-5.5.16\webapps\content\WEB-INF\classes\content>java MultiContentSender
Exception in thread "main" java.lang.NoClassDefFoundError: MultiContentSender (w
rong name: content/MultiContentSender)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
My dir strcture is as below
TOMCAT_HOME/webapps/content/WEB-INF/classes/content/*.class
I am not able to figure out the error, can anyone throw some light on this issue.You are trying to invoke the class from the command prompt. My guess is that MultiContentSender contains a package, which means that you'll need to add your WEB-INF\classes directory to the classpath before it will work. Classes stored in this directory are expected to be invoked through tomcat, which builds it's own classpath.
-
Problems with file uploading servlet, the form action doesnt capture url
Hi, i have one problem. I am working on a project , i have created a servlet that takes uploaded files and processses them and links them back to user to download. The servlet works perfectly from my computer, I am using apache-tomcat-6.0.16 and java 1.6 , I have two forms called encrypt.html and decrypt.html, I will post both of them, now the problem is when somebody access it on the internet while i am running apache, they get a connection was reset on a firefox browser and same stuff on Internet Explorer.
i have checked my server logs and saw nothing unusual there, So please if you can help me, it is my project.
I am pasting html file and error message that other users where getting remotely.
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>Stego Form</title>
<link rel='STYLESHEET' type='text/css' href='encrypt.css'>
</head>
<body>
<center>
<form name='encrypt' enctype='multipart/form-data' method='POST' action='http://localhost:8080/examples/temp2
' accept-charset='UTF-8'>
<input type='hidden' name='sfm_form_submitted' value='yes'>
</input>
<input type='hidden' name='eord' value='e'>
<select name='encryption' size='1'>
<option value='Select an encryption' selected>
Select an encryption
</option>
<option value='DES'>
DES
</option>
<option value='Tripple DES'>
Tripple DES
</option>
</select>
<input type='file' name='overt' size='20'>
<input type='file' name='covert' size='20'>
<input type='submit' name='submit' value='Submit'>
</form>
</center>
</body>
</html>so it works for me even if i access the page with my ip , but for others it doesnt work,
now the user got this xhtml page that i will show, i cant find attach button so i am pasting here.
here is the servlet coding
import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class temp2 extends HttpServlet
FileInputStream fin;
String filenames[] = new String[2],fieldname,fieldval;
String keyfile,IVfile;
String names[] = new String[2];
public temp2()
super();
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
doPost(request, response);
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
String eord="";
List lst = null;
boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
if (!isMultiPart) // check whether the post request is actually multipart
System.out.println("ERROR NOT MULTIPART");
System.exit(0);
DiskFileItemFactory fif = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(fif);
sfu.setSizeMax(10000000);
try { lst = sfu.parseRequest(request); }
catch (FileUploadException ex)
{ System.out.println("ERROR IN PARSING FILES" + ex); System.exit(0); }
if(lst.isEmpty()) // check whether request is empty
System.out.println("ERROR LIST SIZE NOT GOOD : " + lst.size());
System.exit(0);
Iterator x = lst.iterator();
int i = 0;
FileItem f = (FileItem)x.next();
f = (FileItem)x.next();
System.out.println(f.getFieldName());
if(f.getFieldName().equalsIgnoreCase("eord")) // check hidden field to know the case : encrypt or decrypt
eord = f.getString();
System.out.println(f.getString());
else // if it is not first field exit
System.out.println("Invalid FORM");
System.exit(0);
f = (FileItem)x.next(); // next field
if(f.getFieldName().equalsIgnoreCase("encryption")) // type of encryption des / tdes
fieldname = f.getFieldName();
fieldval = f.getString();
System.out.println(f.getString());
if(eord.equalsIgnoreCase("e")) // if it is encryption form only file required
while(x.hasNext())
f = (FileItem)x.next();
if(!f.isFormField())
int check = f.getName().lastIndexOf(File.separator);
System.out.println(File.separator);
if(check==-1)
System.out.println(f.getName());
System.out.println("Unsupported browser : " + check);
System.exit(0);
File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
names[i] = ff.getName(); // original file names
try
f.write(ff);
filenames[i] = ff.getAbsolutePath();
// renamed
ff.deleteOnExit();
}catch(Exception e) {System.out.println("Error writing file"+ ff.getAbsolutePath()); System.exit(0);}
i++;
try { System.in.read(); } catch(Exception e) {}
}// endwhile
if(fieldval.equalsIgnoreCase("DES"))
System.out.println("DES 1"+filenames[1]);
javades o = new javades(filenames[1]); // the file to be encrypted
filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
System.out.println("should be original" + filenames[1]);
else if(fieldval.equalsIgnoreCase("Tripple DES"))
javatdes o = new javatdes(filenames[1]);
filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
System.out.println(filenames[1]);
System.out.println("Calling stego");
filenames[0] = "e:\\apache\\webapps\\temp\\" + names[0];
System.out.println("file 1 "+ filenames[0]);
System.out.println("file 2"+ filenames[1]);
try { System.in.read(); } catch(Exception e) {}
stego s = new stego(filenames[0],filenames[1]);
System.out.println("mainext " + s.mainext);
// encryption done, and new files are loaded, now lets hide
if(s.mainext.equalsIgnoreCase("wav"))
s.encodewav();
System.out.println("Encoded wave");
else if(s.mainext.equalsIgnoreCase("bmp"))
System.out.println("Encoded bmp");
s.encodebmp();
System.out.println("done !");
PrintWriter pr = response.getWriter();
pr.println("Greetings , Your work is done and saved, now download the following files");
pr.println("The secret key file is needed for getting back your hidden file, so download that too");
pr.write("<a href=\"/temp/files/IV.txt\">click here</a>");
pr.write("<br/><a href=\"/temp/files/key.txt\">click here</a>");
pr.write("<br/><a href=\"/temp/files/"+names[0]+"\">click here</a>");
return;
// if it is decryption case
else if(eord.equalsIgnoreCase("d"))
while(x.hasNext())
f = (FileItem)x.next();
if(!f.isFormField())
int check = f.getName().lastIndexOf(File.separator);
System.out.println(File.separator);
if(check==-1)
System.out.println(f.getName());
System.out.println("Unsupported browser : " + check);
System.exit(0);
File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
// else if ladder to store paths of stegofile keyfile and IVfile
if(f.getFieldName().equalsIgnoreCase("stegofile"))
filenames[0] = ff.getAbsolutePath();
else if(f.getFieldName().equalsIgnoreCase("keyfile"))
keyfile = ff.getAbsolutePath();
else if(f.getFieldName().equalsIgnoreCase("IVfile"))
IVfile = ff.getAbsolutePath();
try
f.write(ff); // writes whole file at once
}catch(Exception e) {System.out.println("Error writing file"); System.exit(0);}
}// endwhile
System.out.println("Calling stego");
System.out.println("file 1 "+ filenames[0]);
stego s = new stego(filenames[0]);
System.out.println("mainext " + s.mainext);
if(s.mainext.equalsIgnoreCase("wav"))
s.decodewav();
System.out.println("Encoded wave");
else if(s.mainext.equalsIgnoreCase("bmp"))
s.decodebmp();
System.out.println("Encoded bmp");
System.out.println("done !");
////// hidden file has been retrieved , now lets decrypt it
System.out.println("ext " + s.ext);
filenames[0] = "e:\\apache\\webapps\\temp\\"+s.filename;
System.out.println(filenames[0]);
System.out.println(keyfile);
System.out.println(IVfile);
if(fieldval.equalsIgnoreCase("DES"))
javades o = new javades(filenames[0],keyfile,IVfile); // the file to be encrypted
filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
System.out.println("should be original" + filenames[0]);
else if(fieldval.equalsIgnoreCase("Tripple DES"))
javatdes o = new javatdes(filenames[0],keyfile,IVfile);
filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
System.out.println(filenames[0]);
PrintWriter pr = response.getWriter();
pr.write("Greetings, you have successfully retrieved your hidden file, now download it from here <br>");
pr.write("<a href=\"http://localhost:8080/temp/files/" + (new File(filenames[0]).getName())+"\">Click here</a>");
}and here is the xhtml file the user receives, whe he clicks the submit button,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html [
<!ENTITY % htmlDTD
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
%htmlDTD;
<!ENTITY % netErrorDTD
SYSTEM "chrome://global/locale/netError.dtd">
%netErrorDTD;
<!ENTITY loadError.label "Problem loading page">
<!ENTITY retry.label "Try Again">
<!-- Specific error messages -->
<!ENTITY connectionFailure.title "Unable to connect">
<!ENTITY connectionFailure.longDesc "&sharedLongDesc;">
<!ENTITY deniedPortAccess.title "This address is restricted">
<!ENTITY deniedPortAccess.longDesc "">
<!ENTITY dnsNotFound.title "Server not found">
<!ENTITY dnsNotFound.longDesc "
<ul>
<li>Check the address for typing errors such as
<strong>ww</strong>.example.com instead of
<strong>www</strong>.example.com</li>
<li>If you are unable to load any pages, check your computer's network
connection.</li>
<li>If your computer or network is protected by a firewall or proxy, make sure
that &brandShortName; is permitted to access the Web.</li>
</ul>
">
<!ENTITY fileNotFound.title "File not found">
<!ENTITY fileNotFound.longDesc "
<ul>
<li>Check the file name for capitalization or other typing errors.</li>
<li>Check to see if the file was moved, renamed or deleted.</li>
</ul>
">
<!ENTITY generic.title "Oops.">
<!ENTITY generic.longDesc "
<p>&brandShortName; can't load this page for some reason.</p>
">
<!ENTITY malformedURI.title "The address isn't valid">
<!ENTITY malformedURI.longDesc "
<ul>
<li>Web addresses are usually written like
<strong>http://www.example.com/</strong></li>
<li>Make sure that you're using forward slashes (i.e.
<strong>/</strong>).</li>
</ul>
">
<!ENTITY netInterrupt.title "The connection was interrupted">
<!ENTITY netInterrupt.longDesc "&sharedLongDesc;">
<!ENTITY netOffline.title "Offline mode">
<!ENTITY netOffline.longDesc "
<ul>
<li>Uncheck "Work Offline" in the File menu, then try again.</li>
</ul>
">
<!ENTITY netReset.title "The connection was reset">
<!ENTITY netReset.longDesc "&sharedLongDesc;">
<!ENTITY netTimeout.title "The connection has timed out">
<!ENTITY netTimeout.longDesc "&sharedLongDesc;">
<!ENTITY protocolNotFound.title "The address wasn't understood">
<!ENTITY protocolNotFound.longDesc "
<ul>
<li>You might need to install other software to open this address.</li>
</ul>
">
<!ENTITY proxyConnectFailure.title "The proxy server is refusing connections">
<!ENTITY proxyConnectFailure.longDesc "
<ul>
<li>Check the proxy settings to make sure that they are correct.</li>
<li>Contact your network administrator to make sure the proxy server is
working.</li>
</ul>
">
<!ENTITY proxyResolveFailure.title "Unable to find the proxy server">
<!ENTITY proxyResolveFailure.longDesc "
<ul>
<li>Check the proxy settings to make sure that they are correct.</li>
<li>Check to make sure your computer has a working network connection.</li>
<li>If your computer or network is protected by a firewall or proxy, make sure
that &brandShortName; is permitted to access the Web.</li>
</ul>
">
<!ENTITY redirectLoop.title "The page isn't redirecting properly">
<!ENTITY redirectLoop.longDesc "
<ul>
<li>This problem can sometimes be caused by disabling or refusing to accept
cookies.</li>
</ul>
">
<!ENTITY unknownSocketType.title "Unexpected response from server">
<!ENTITY unknownSocketType.longDesc "
<ul>
<li>Check to make sure your system has the Personal Security Manager
installed.</li>
<li>This might be due to a non-standard configuration on the server.</li>
</ul>
">
<!ENTITY sharedLongDesc "
<ul>
<li>The site could be temporarily unavailable or too busy. Try again in a few
moments.</li>
<li>If you are unable to load any pages, check your computer's network
connection.</li>
<li>If your computer or network is protected by a firewall or proxy, make sure
that &brandShortName; is permitted to access the Web.</li>
</ul>
">
<!ENTITY % globalDTD
SYSTEM "chrome://global/locale/global.dtd">
%globalDTD;
]>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
- The Original Code is mozilla.org code.
- The Initial Developer of the Original Code is
- Netscape Communications Corporation.
- Portions created by the Initial Developer are Copyright (C) 1998
- the Initial Developer. All Rights Reserved.
- Contributor(s):
- Adam Lock <[email protected]>
- William R. Price <[email protected]>
- Henrik Skupin <[email protected]>
- Jeff Walden <[email protected]>
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
- ***** END LICENSE BLOCK ***** -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Problem loading page</title>
<link rel="stylesheet" href="temp2_files/netError.css" type="text/css" media="all"/>
<!-- XXX this needs to be themeable -->
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAICSURBVHjaYvz//z8DJQAggJhwiDPvnmlzc2aR0O+JGezt+AwACCCsBhxfYhn59N41FWtXIxZOLu70niRGXVwGAAQQNgNYHj96O8HaWYdJW5ubwd4/mI2Ng7sblwEAAYRhwMm1URk/vn4SUNWVYGD8+YZBXZOZm5OLzRjoCmNsBgAEEKoBN82Y7l851GLrqMjM8Oc7A8O/3wwMP54wuAQFCXNycUzGZgBAAKEYcOaKZO2/f//5FbUVgBrfMoRVcgHpNwyKGjKMXDwCan0prFboBgAEELIBzDcvXyy2cVZhYPj9GWj7H4jo/38MDJ9OMDj7O/KzsjH3oxsAEEBwA/bNNipiZf7FI6cqwcDw8x2qqp8fGORUpVn4BEXlgGHhhCwFEEAwA9gfP3hdZ+Oizcjw+wvCdjgAuuLrFQbXIH9hTm7uqcgyAAEENuD4ctcebm5mbikFYRTbV7V/Q6j88Z5BSuY7q4CQgAjQFR4wYYAAAhtw89L5ZFsnRaDtn4CW/YXrAQcisit+PGVwDgrnZ2NnnwATBQggpsNLvGYLCAmxi8tLARWg+h3FBVBXSEj/ZZWQkRcCuiIQJAQQQCyvnj5KMDTkZ2JgYmRg4FchnHv+vmEwttLmeXT3VjKQtx4ggFgk5TXebV63UfT3ijOMxOZAVlZWdiB1EMQGCCBGSrMzQIABAFR3kRM3KggZAAAAAElFTkSuQmCC"/>
<script type="application/x-javascript"><![CDATA[
// Error url MUST be formatted like this:
// moz-neterror:page?e=error&u=url&d=desc
// Note that this file uses document.documentURI to get
// the URL (with the format from above). This is because
// document.location.href gets the current URI off the docshell,
// which is the URL displayed in the location bar, i.e.
// the URI that the user attempted to load.
function getErrorCode()
var url = document.documentURI;
var error = url.search(/e\=/);
var duffUrl = url.search(/\&u\=/);
return decodeURIComponent(url.slice(error + 2, duffUrl));
function getDescription()
var url = document.documentURI;
var desc = url.search(/d\=/);
// desc == -1 if not found; if so, return an empty string
// instead of what would turn out to be portions of the URI
if (desc == -1) return "";
return decodeURIComponent(url.slice(desc + 2));
function retryThis()
// Session history has the URL of the page that failed
// to load, not the one of the error page. So, just call
// reload(), which will also repost POST data correctly.
try {
location.reload();
} catch (e) {
// We probably tried to reload a URI that caused an exception to
// occur; e.g. a non-existent file.
function initPage()
var err = getErrorCode();
// if it's an unknown error or there's no title or description
// defined, get the generic message
var errTitle = document.getElementById("et_" + err);
var errDesc = document.getElementById("ed_" + err);
if (!errTitle || !errDesc)
errTitle = document.getElementById("et_generic");
errDesc = document.getElementById("ed_generic");
var title = document.getElementById("errorTitleText");
if (title)
title.parentNode.replaceChild(errTitle, title);
// change id to the replaced child's id so styling works
errTitle.id = "errorTitleText";
var sd = document.getElementById("errorShortDescText");
if (sd)
sd.textContent = getDescription();
var ld = document.getElementById("errorLongDesc");
if (ld)
ld.parentNode.replaceChild(errDesc, ld);
// change id to the replaced child's id so styling works
errDesc.id = "errorLongDesc";
// remove undisplayed errors to avoid bug 39098
var errContainer = document.getElementById("errorContainer");
errContainer.parentNode.removeChild(errContainer);
]]></script>
</head>
<body dir="ltr">
<!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
<!-- PAGE CONTAINER (for styling purposes only) -->
<div id="errorPageContainer">
<!-- Error Title -->
<div id="errorTitle">
<h1 id="errorTitleText">The connection was reset</h1>
</div>
<!-- LONG CONTENT (the section most likely to require scrolling) -->
<div id="errorLongContent">
<!-- Short Description -->
<div id="errorShortDesc">
<p id="errorShortDescText">The connection to the server was reset while the page was loading.</p>
</div>
<!-- Long Description (Note: See netError.dtd for used XHTML tags) -->
<div id="errorLongDesc">
<ul>
<li>The site could be temporarily unavailable or too busy. Try again in a few
moments.</li>
<li>If you are unable to load any pages, check your computer's network
connection.</li>
<li>If your computer or network is protected by a firewall or proxy, make sure
that Firefox is permitted to access the Web.</li>
</ul>
</div>
</div>
<!-- Retry Button -->
<xul:button xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="errorTryAgain" label="Try Again" oncommand="retryThis();"/>
</div>
<!--
- Note: It is important to run the script this way, instead of using
- an onload handler. This is because error pages are loaded as
- LOAD_BACKGROUND, which means that onload handlers will not be executed.
-->
<script type="application/x-javascript">initPage();</script>
</body>
</html>thank you for your prompt reply in advance,
Regards,
Mihir PandyaHi, thank you for your replies, I found out few things about my servlet, and its portability
and i have few questions, although i marked this topic as answered i guess its ok to post
I am using javax.servlet.context.tempdir to store my files in that servletcontext temporary directory. But i dont know how to give hyperlink
of the modified files to the user for them to download the modified files.
What i am using to get the tempdir i will paste
File baseurl = (File)this.getServletContext().getAttribute("javax.servlet.context.tempdir");
System.out.println(baseurl);
baseurl = new File(baseurl.getAbsolutePath()+File.separator+"temp"+File.separator+"files");
baseurl.mkdirs();so i am storing my files in that temp/files folder and the servlet processes them and modifies them, then how to present them as
links to the user for download ?
and as the servlet is multithreaded by nature, if my servlet gets 2 different requests with same file names, i guess one of them will be overwritten
And i want to create unique directory for each request made to the servlet , so file names dont clash.
one another thing is that i want my servlet to be executed by my <form action> only, I dont want the user to simply type url and trigger the servlet
Reply A.S.A.P. please..
Thanks and regards,
Mihir Pandya -
Upload servlet: how to redirect the user back to the portlet
Hi. From what I've read in this forum, Oracle Portal does not support "multipart/form-data" forms, so the way to upload a file is to use a standalone servlet. The problem is, how do I redirect the user back to the portlet? Should I pass the back URL as a parameter to this servlet? How do I construct it?
Since it's an standalone servlet, I can't use oracle.portal.provider.v2.url.UrlUtils to construct a "back link". I had thought of using the referer header, but since this isn't always guaranteed to be present (for example, I know you can disable it in Firefox, and I think SSL conections disable it, too), I guess that maybe sending the URL generated using UrlUtils.PAGE_LINK, UrlUtils.REQUEST_LINK or UrlUtils.REFRESH_LINK (I would have to test which one suits my needs), it could work. Do you think is this the best solution?
Thanks in advanceIf you use a popup window for file upload, you don't have such a redirect problem.
-
Servlet/swing communication
how to display data retrieved from oracle using servlet on to the swing GUI?
Well, how do you want to display it?
In the form of created graphs? Plain text? Tables? 3D fly-by sequence? Animated smurfs singing the data with cute li'l voices in stereo (where available)?
There are few practical limits to how you can present the data, really...
/Fredrik -
How can i file upload in swing?
Hi all
I want to upload a image using swing, how can i upload a file using swing?
do you have any links/examples that I can benifit from?
thanks in advance.Hi,
Using below api's from apache it can be possible simply.
org.apache.commons.httpclient.HttpClient;
org.apache.commons.httpclient.methods.MultipartPostMethod;
-Venkat -
Hi there,
I am experiencing some problems with a WL 5.1 sp8 server trying to do a
form (multipart/form-data) upload of a file.
I am using the com.oreilly package but get a Corrupt form data error
when instatiating the MultipartRequest object in the contructor of the
MultipartParser
Object.
Have anyone solved this on a WL 5.1 using the IIS plugin??
regards
Klaus Petersen
Alpha-Gruppen A/S
[email protected]
Hi there,
I am experiencing some problems with a WL 5.1 sp8 server trying to do a
form (multipart/form-data) upload of a file.
I am using the com.oreilly package but get a Corrupt form data error
when instatiating the MultipartRequest object in the contructor of the
MultipartParser
Object.
Have anyone solved this on a WL 5.1 using the IIS plugin??
regards
Klaus Petersen
Alpha-Gruppen A/S
[email protected]
-
Java.io.IOException in servlet-based file upload
Hi,
I'm running into some problems with Weblogic Server 5.1 on Unix (Solaris), while
trying to do a servlet-based file upload. I'm trying to upload a file to the
server file system through a file upload servlet running inside Weblogic Server
5.1, and I get an exception when I try to create a file on the Unix server
filesystem:
java.io.IOException: Not owner
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:692)
at com.cysive.filemanagement.UploadFile.save(UploadFile.java:84)
I tried changing the upload location to various places, like directly in the
docroot (myserver/public_html), in my home directory, etc. I am not sure which
owner Weblogic is looking for, because the process is owned by whoever starts
the WL server. And the strange thing is, I am able to create new directories on
the file system, just not files.
When I run the exact code on WinNT, everything works fine... I am able to create
files and directories and the upload goes through smoothly.
I'm thinking there is something I need to be setting in the weblogic.properties
file on Unix by way of permissions/privileges that is not required on WinNT, but
was not able to find anything in the documentation.
Could anyone help, please?
Thanks.
Hrishi
Check what user/group you are running your weblogic server.(check out the user who starts as well as UID/user/group in weblogic.properties file if you have set them).
check out whether that user/group has necessary permission on unix m/c
Hrishi Dixit <[email protected]> wrote:
>
Hi,
I'm running into some problems with Weblogic Server on Unix, while trying to do
a servlet-based file upload. I'm trying to upload a file to the server file
system through a file upload servlet running inside Weblogic Server 5.1, and I
get an exception when I try to create a file on the Unix server filesystem:
java.io.IOException: Not owner
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:692)
at com.cysive.filemanagement.UploadFile.save(UploadFile.java:84)
I tried changing the upload location to various places, like directly in the
docroot (myserver/public_html), in my home directory, etc. I am not sure which
owner Weblogic is looking for, because the process is owned by whoever starts
the WL server. And the strange thing is, I am able to create new directories on
the file system, just not files.
When I run the exact code on WinNT, everything works fine... I am able to create
files and directories and the upload goes through smoothly.
I'm thinking there is something I need to be setting in the weblogic.properties
file on Unix by way of permissions/privileges that is not required on WinNT, but
was not able to find anything in the documentation.
Could anyone help, please?
Thanks.
Hrishi -
Interruption file upload breaks servlet engine...
Hi,
I've written a file upload servlet, which works great, until someone abandons an upload half way through the process. My servlet seems to block open a port or process, and cause my jsp pages to stop responding!!! resulting in breaking my site. I have to manually kill the servlet engine, and restart the process. The JSP engine is tomcat 4.1.27. Any ideas on preventing the system locking up, or where i can look for clues as to what is actually happening would be greatly appreciated.
TIA
SteveYou'll have to debug it - for example, sprinkle System.out.println("now I'm here in the code") statements, and reproduce the scenario by invoking it yourself and aborting the upload. It should throw an exception while you're reading the upload stream - maybe you're not handling that correctly.
-
Change file name with oreilly servlet
I am using oreilly servlet package and I want to change the file name to the file I am uploading, is this possible ?
How ?
Thanks.
here I post the servlet code:
package com.reducativa.sitio.servlets;
* DemoParserUploadServlet.java
* Example servlet to handle file uploads using MultipartParser for
* decoding the incoming multipart/form-data stream
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import com.oreilly.servlet.multipart.*;
public class DemoParserUploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/plain");
out.println("Demo Parser Upload Servlet");
File dir = new File("f:/");
if (! dir.isDirectory()) {
throw new ServletException("Supplied uploadDir " + "f:/ " +
" is invalid");
try {
MultipartParser mp = new MultipartParser(request, 10*1024*1024); // 10MB
Part part;
while ((part = mp.readNextPart()) != null) {
String name = part.getName();
if (part.isParam()) {
// it's a parameter part
ParamPart paramPart = (ParamPart) part;
String value = paramPart.getStringValue();
out.println("param; name=" + name + ", value=" + value);
else if (part.isFile()) {
// it's a file part
FilePart filePart = (FilePart) part;
String fileName = filePart.getFileName();
if (fileName != null) {
// the part actually contained a file
long size = filePart.writeTo(dir);
out.println("file; name=" + name + "; filename=" + fileName +
", filePath=" + filePart.getFilePath() +
", content type=" + filePart.getContentType() +
", size=" + size);
else {
// the field did not contain a file
out.println("file; name=" + name + "; EMPTY");
out.flush();
catch (IOException lEx) {
this.getServletContext().log("error reading or saving file");
}Hi there,
I am facing the same problem that you have stated in your Feb 26, 2002 10:28 AM message regarding "change file name with oreilly servlet", I would like to change the file name to include a unique identifier upon upload, did you ever find a solution to your problem?
Thanks!
Todd
[email protected] -
Com.oreilly.servlet.multipart writeTo() question
I am trying to write a upload servlet with com.oreilly.servlet.multipart.
The problem I am having is specifiying the name of file on the server's side.
When I looked at the documentation for FilePart.writeTo() ...
com.oreilly.servlet.multipart
Class FilePart
java.lang.Object
|
--com.oreilly.servlet.multipart.Part
|
--com.oreilly.servlet.multipart.FilePart
writeTo
public long writeTo(java.io.File fileOrDirectory) throws java.io.IOException
Write this file part to a file or directory. If the user supplied a file, we write it to that file, and if they supplied a directory, we write it to that directory with the filename that accompanied it. If this part doesn't contain a file this method does nothing.
Returns: number of bytes written
Throws: java.io.IOException - if an input or output exception has occurred.
... I figured all I had to do was supply a file to writeTo(), so that writeTo() would write to that file.
So I modified the example servlet code (DemoParserUploadServlet.java) to do this ...
code:
String outFileName = dirName + "/" + xyz_UpLoadUser + "/" + name + "_" + getTS() + ".dat";
file = new File( outFileName );
size = filePart.writeTo(file);
... and I get the error ...
javax.servlet.ServletException: Supplied uploadDir ./TEST001/FILE_1_20040220085207.dat is invalid
I took a look at DemoRequestUploadServlet.java but that only shows me would to write files to the /tmp directory not how to change the file's name from what the user supplied in the form.
Please help!Thanks for your reply :)
I just resorted to doing something like this ...
public void init ( ...
dir = new File ( dirName );
public void doPost ( ...
String oldFileName = filePart.getFileName();
String newFileName = dirName + "/" + xyz_UpLoadUser + "/" + name + "_" + getTS() + ".dat";
size = filePart.writeTo(dir);
File oldFile = new File( oldFileName );
File newFile = new File( newFileName );
boolean rc = oldFile.renameTo( newFileName ); -
Servlet call from jsp pages on Hosting server instead of Local system
HI,
We have started hoste our projects on one of the Dedicated service from US.
We have used servlets in our projects and uploaded servlet based project on Dedicated server ,so now we are getting one ERROR ,when we try to access servlet pages from browser .
sample Below ERROR we are getting on browser ,when we try to access the servlet...
The requested URL /Globalcontactservlet was not found on this server
In Web.xml i have written mappings for servlets and i have included web.xml file under the Web-inf folder as same process we do on local system server.(Tomcat 5.5)
on browser i am trying to use the below format to request the servlet mapping
<form method="POST" action="http://www.xyz.com/Globalcontactservlet" >
</form>You can download Oracle's latest JDBC drivers from: http://otn.oracle.com/software/content.html
You need to register, but it should be free.
When you get the zip/jar-file, you have several options. You can either place it in the common classpath of your system/Servlet container (recommended if you use it in most of your webapps), or in the WEB-INF/lib directory of your webapp (if you only use it with that particular one).
.P.
Maybe you are looking for
-
Applescript to add mail content to spreadsheet
Please help I know enough to be dangerous with Applescripting I would like to add a script to a mail rule to put my banking transaction notification email into a spreadsheet. I would like to extract the records from the text in the Mail subect line a
-
IWork doesn't support arabic!! When will it support?!
When can i use iWork to write in arabic?!
-
How to create pdf from reports iView in VC?
Hello, I have created a certain iView which presents a few BI reports in VC. Is it possible to add to it a button or a link that by pressing on it will generate a pdf file with these reports so the client can download?
-
Sorting of Characteristics Values
Hi Experts, I have one issue.When i am giving the values to the characteristic (Data format is CHAR)in the equipment (after assigned the class to the equipment)it is sorting the values example-1,10,3,5 even if I give 1,3,5,10.The requirement is it sh
-
Where to find the javadoc ?
I'm looking for the javadoc of all packages starting with com.sun.xml.rpc. Where is it ?