Communicating applet with Servlets
Dear Friends,
I need to communicate Applet & Servlet.
Servlet should take the data from an wesite & it write the data
to a file . the applet should read the file . these action should take
automatically ( i.e updation )
This is too large to tell you here (you should read it on thousands of other pages - see google). But I want to note that you should avoid reading files with applets. Applets should almost always run within their sandbox (security model) without accessing exetrnal resources. It should only have to access the server it originates from.
Similar Messages
-
How can I use URLConnection to use applet communication with servlet?
I want to send a String to a servlet in applet.I now use URLConnection to communicat between applet and servlet.
====================the applet code below=========================
import java.io.*;
import java.applet.Applet;
import java.awt.*;
import java.net.*;
//I have tested that in applet get data from servlet is OK!
//Still I will change to test in applet post data to a servlet.
public class TestDataStreamApplet extends Applet
String response;
String baseurl;
double percentUsed;
String total;
public void init()
try
java.net.URL url = new java.net.URL(getDocumentBase(),"/servlet/dataStreamEcho");
//String currenturl=new String("http://lib.nju.edu.cn");
java.net.URLConnection con = url.openConnection();
//URL currentPage=getCodeBase();
// String protocol=currentPage.getProtocol();
// String host=currentPage.getHost();
//int port=currentPage.getPort();
// String urlSuffix="/servlet/dataStreamEcho";
// URL url=new URL(protocol,host,port,urlSuffix);
// URLConnection con=url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
PrintWriter out=new PrintWriter(byteout,true);
String currenturl=new String("http://lib.nju.edu.cn");
String var1=this.encodedValue(currenturl); //encode the data
String data="currenturl="+var1;
out.print(data);
out.flush();
con.setRequestProperty("Content-Length",String.valueOf(byteout.size()));
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
byteout.writeTo(con.getOutputStream());
BufferedReader in=new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while((line=in.readLine())!=null)
System.out.println(line);
catch (Exception e)
e.printStackTrace();
private String encodedValue(String rawValue)
return(URLEncoder.encode(rawValue));
=========================The servlet code below=====================
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class DataStreamEcho extends HttpServlet
{public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
res.setContentType("text/plain");
PrintWriter out = res.getWriter();
Runtime rt = Runtime.getRuntime();
out.println(rt.freeMemory());
out.println(rt.totalMemory());
response.setContentType("text/html; charset=GBK");
request.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();
ServletContext application=this.getServletContext();
String currenturl=(String)session.getAttribute("currenturl");
out.print(currenturl);
=============================================================
I have done up,but I found the program don't run as I have thought.
Can you help me to find where is wrong?Very thank!You are trying to pass the current URL to the servlet
from the applet, right?
Well, what I put was correct. Your servlet code is
trying to read some information from session data.
request.getInputStream() is not the IP address of
anything...see
http://java.sun.com/products/servlet/2.2/javadoc/javax
servlet/ServletRequest.html#getInputStream()
Please read
http://www.j-nine.com/pubs/applet2servlet/Applet2Servle
.htmlNo,you all don't understand I.
I want to send an Object to the server from a applet on a client.not url only.I maybe want to send a JPEG file instead.
All I want is how to communicate with a servlet from an applet,send message to servlet from client's applet.
for example,Now I have a method get the desktop picture of my client .and I want to send it to a server with a servlet to done it.How can I write the applet and servlet program?
Now my program is down,But can only do string,can't not done Object yet.Can anyone help me?
=======================applet=============================
public void init()
try
java.net.URL url = new java.net.URL(getDocumentBase(),"/servlet/dataStreamEcho");
//String currenturl=new String("http://lib.nju.edu.cn");
java.net.URLConnection con = url.openConnection();
//URL currentPage=getCodeBase();
// String protocol=currentPage.getProtocol();
// String host=currentPage.getHost();
//int port=currentPage.getPort();
// String urlSuffix="/servlet/dataStreamEcho";
// URL url=new URL(protocol,host,port,urlSuffix);
// URLConnection con=url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
PrintWriter out=new PrintWriter(byteout,true);
String currenturl=new String("http://lib.nju.edu.cn");
String var1=this.encodedValue(currenturl); //encode the data
String data="currenturl="+var1;
out.print(data);
out.flush();
con.setRequestProperty("Content-Length",String.valueOf(byteout.size()));
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
byteout.writeTo(con.getOutputStream());
con.connect();
BufferedReader in=new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while((line=in.readLine())!=null)
System.out.println(line);
catch (Exception e)
e.printStackTrace();
=======================servlet=============================
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
response.setContentType("text/html; charset=GBK");
//request.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();
ServletContext application=this.getServletContext();
//String currenturl=(String)session.getAttribute("currenturl");
String currenturl=(String)request.getParameter("currenturl");
out.print(currenturl);
File fileName=new File("c:\\noname.txt");
fileName.createNewFile();
FileOutputStream f=new FileOutputStream(fileName); //I just write the String data get from
//applet to a file for a test.
byte[] b=currenturl.getBytes();
f.write(b);
f.close();
} -
Applet not communicating with servlet when given ip address (not localhost)
I have a strange problem with my applet -
I have a java applet and a Tomcat server running. I am able to communicate between the applet
and a servlet on the server (sending strings from applet to servlet, for example..) when the
URL that I write in the applet is -
"http://localhost:8080/ProjectName/ServletName "
BUT - when instead of that "localhost" I insert my ip address, it throws the exception:
java.net.ConnectException: Connection refused: connect
in the line -
urlConn.getOutputStream(); (urlConn is the HttpURLConnection that I created with the URL)
also, I did port forwarding (I have a router)
so that 8080 port will be directed to my computer, and tested the forwarding, and it does work.
Does anybody know why there is a problem?
Thank you.. :)>
well, in the final version of the project the applet will be signed.. >Uh-huh..
>
but, I got tired of signing it every time I edited the code, so now I just simply run it as a "java applet" project
from the eclipse.. NOT as a signed jar..>Eclipse has Ant built in. Write a script that will compile/build/sign the jar for you, then build it to the point of being signed for every test run. (Just today I was making some changes to a signed applet project that does just that - I probably built it 25 times before I was happy with the changed code - not a problem.)
>
you think that's the problem ?>Yep. Not that I provide support for Eclipse, nor know how it goes about launching applets (trusted or sandboxed). -
Applet failed to communicate with servlet for https, on tomcat5.0+apache2.0
Hi
I have a problem, we have a tomcat5.0 and apache 2.0 with jk connector, and an application where an applet comunicate to servlet.
we need to set the ssl , the apache is configured with the ssl( openssl,).
when I run the application with standalone tomcat with ssl
connector (port 8443)enable, it runs fine for both http and https.
i use httpsURLconnection for https communication from applet to servlet.
But at production envoirment (Tomcat 5.0 , apache 2.0 and j connector with ssl enable at apache) it fails for https, all the jsps runs properly, but the applet isn't communicating with servlet. can anyone guess what is the problem.
the exception dump is
ava.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 401 SSL Connection Not Granted"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at com.blu.HttpMessage.sendGetMessage(HttpMessage.java:65)
at com.blu.HttpMessage.sendGetMessage(HttpMessage.java:38)
at com.blu.applet.ServerDAO.sendDummyRequest(ServerDAO.java:66)Make sure your deployment is using a supported network configuration, we do not support running under localhost. Your SGD server needs a valid DNS name configured.
See
2.1. SGD Server Requirements and Support
for more details -
Communication Applet - Servlet
Hello,
I'm trying to do a communication Applet - Servlet.
When i'm typing in my browser internet explorer
http://pcsm1:8080/servlet/MyServlet
My servlet is invoqued perfectly and i see the good message in the prompt ms-dos (cf MS-DOS PROMPT : MESSAGE OF THE SERVLET!)
But when i'm trying with my applet, i have a security exception : cannot access "pcsm1":8080
SERVLET :
public class MyServlet extends HttpServlet
public void init(ServletConfig config)
System.out.println("Servlet Init");
public void doGet(HttpServletRequest request,HttpServletResponse response)
ObjectOutputStream outputToApplet;
long data=69;
try
outputToApplet = new ObjectOutputStream (response.getOutputStream()); System.out.println("Sending data to applet...");
outputToApplet.writeLong(data);
outputToApplet.flush();
outputToApplet.close();
System.out.println("Data transmission complete.");
catch (IOException e)
public void doPost(HttpServletRequest request,HttpServletResponse response)
APPLET :
public class MyApplet extends Applet
public void init()
try
URL url = new URL("http://pcsm1:8080/servlet/MyServlet");
or
URL url = new URL(getCodeBase(),"http://pcsm1:8080/servlet/MyServlet");
URLConnection servletConnection = url.openConnection();
servletConnection.setDoInput(true);
servletConnection.setDoOutput(true);
servletConnection.setUseCaches (false);
servletConnection.setDefaultUseCaches (false);
servletConnection.setRequestProperty("Content-type","application/octet-stream");
ObjectInputStream inputFromServlet = new ObjectInputStream(servletConnection.getInputStream());
data = inputFromServlet.readLong();
inputFromServlet.close();
catch (Exception e)
MS-DOS PROMPT : MESSAGE OF THE SERVLET
when caller is internet explorer
C:\Servlet\bin>servletrunner -d "c:\servlet\bin"
servletrunner starting with settings:
port = 8080
backlog = 50
max handlers = 100
timeout = 5000
servlet dir = c:\servlet\bin
document dir = .\examples
servlet propfile = c:\servlet\bin\servlet.properties
Servlet Init
Sending data to applet...
Data transmission complete.
What can i do to avoid my security exception problem?
Very thanks...Are MyServlet and the HTML page hosting MyApplet being served from the same server (i.e., pcsm1:8080)? If not, this is a violation of one of the security constraints placed on unsigned applets.
If the above scenario is the case, there are three options to overcome:
1) Create a signed applet
2) Move the HTML/Applet to the same server as the Servlet
3) On the server serving the HTML/Applet, create a "proxy" servlet to which the applet can connect and which will in turn contact MyServlet (through HttpURLConnection) -
Communicating with Servlets....
hi!
Wat are all the different ways in which the JSP used to communicate with Servlet?
Thanx,
Rgds,
SasiJsp page communication with Servlets....
web.xml -- Servlets loaded during application startup
struts config -- Servlet mapping (w.r.t struts).
and u can import servlets in jsp and can use it... there are so many possible ways of using servlets coz jsp pages inturn convert into servlets and got executed..... -
Probem with applet and servlets
subject "not able to invoke applet from servlets"
i have attached files also..
Respected sir,
I am thomas from prateek techologies ,referred by madam Pratibha.
Actually i have to plot point marks on a image(it is a Banglore map) in an applet(Uploadimg3.java).so, for doing so, iam getting values from database in my servlet file named Mapuser_sev.java
which is in the directory
WEB-INF/classes.
now after fetching the values ,i am not able invoke the Applet (Uploadimg3.java)which is in the directory
WEB-INF/classes/mapuser.
i have used the api ,response.sendredirect("/prakash/jspfiles/displaymap1.jsp");-->up to here it's ok..
I have used the plugin tag as follows:-
displaymap1.jsp
<html>
<body>
<jsp:plugin type="applet" code="Uploadimg3.class" codebase="WEB-INF/classes/mapuser" width="400" height="400">
</jsp:plugin>
</body>
</html>
if the plugin tag is wrong then please send me the correct coding for "jsp: plugin" with explaination.
this is my directory hierarchy..
jspfiles-->directory(folder)
Prakash/jspfiles/displaymap1.jsp ----->this file has the plugin tags as mentioned above..
Prakash is my context..
WEB-INF/
classes/Mapuser_serv.class -----> this is a servlet file
mapuser/
Uploadimg3.java -----> this is a Applet file
Uploadimg3.class
Mapuser1.java ---> i used this file to fetchdata from db ,please forget this file ..
Mapuser1.class
with regards,
Thomas..It might be the restrictions java has about opening files in a web browser. I don' t know if it's allowed or not..
-
Using MVC with Applet inside Servlet
Hello fellow Java developers,
I want to implement the Model View Controller concept inside a Bean Applet combination running in a servlet environment.
When my model (the Bean) changes, I want my Applet (the View) to get notified so it can get the update from the Bean. The Applet is incorporated inside the jsp page (e.g. the servlet). The Bean is known inside the jsp. How do I make that same Bean known inside the Applet?
When I create a new Bean during init, or in the constructor of the Applet, I get a complete other reference than the Bean inside the jsp. So, when I ask information from the Bean, I often get NullPointerExceptions, because I am referencing the wrong Bean.
Does anyone have a solution for my problem?
Regards,
Michelhi,
a servlet is server side object, an applet is client side object.
For the communication, you should try HttpUrlConnection from applet to servlet.
another way is tu use ejb, or rmi communcation -
How can my applet communicate with servlet via HTTPS?
hi all,
I'm using jdk1.4.2_03. Tomcat 4.1.27/29.
My applet used to communicate to serlvet/JSP via http protocol. However, I wish to apply SSL in my tomcat standalone. Is there any implication towards my existing applet to servlet codes?
For example,
URL servletURL = new URL("http://www.myhost.com/Shopping");
// open connection between applet and servlet
URLConnection servletConnection = servletURL.openConnection();
servletConnection.setDoOutput(true); // allow connection do output
servletConnection.setDoInput(true); // allow connection do input
servletConnection.setUseCaches(false);
servletConnection.setRequestProperty("Content-Type", "application/octet-stream");
ObjectInputStream input = new ObjectInputStream(servletConnection.getInputStream());
resultset = (Vector)input.readObject(); //get Object from Servlet
input.close();http://java.sun.com/j2se/1.4.2/docs/api/javax/net/ssl/HttpsURLConnection.html
I never used it though, you can check for some code here:
http://javaalmanac.com/cgi-bin/search/find.pl?words=HttpsURLConnection -
Is it possible to replace applet with JSP
I m working for the extension of the a Chat Application which is Applet based...
It is slow as the Applet loaded...
Is it possible to replace the applet with th JSP....
what r the pro and cons of it???
Thanks in advance...sure it is possible.
main difference is, that applet maintance a permanten connection to the server and therefor has a 'smaller' communication where as with servlets/jsp the client will have to communicate more information for each request.
have a look at pushlets.com, a servlet based framework that keeps the connection to the client open (works with hidden frames and dhtml). very smart framework. -
Sending a file from Applet to servlet HELP me Please
Sorry, i have the problem this is my code Applet & Servlet but it seems working asynchronously if you have some ideas please reply me i send bytes on outputstream but the inputstream of servlet receive nothing bytes but write my system.out.print on screen server:
Applet:
URL servletURL = new URL(codebase, "/InviaFile/servlet/Ricevi");
HttpURLConnection urlConnection = (HttpURLConnection) servletURL.openConnection();
urlConnection.setRequestMethod("POST");
urlConnection.setUseCaches(false);
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setAllowUserInteraction(false);
urlConnection.setRequestProperty("Content-Type", "application/octet-stream");
urlConnection.setRequestProperty("Content-length", String.valueOf(100));
urlConnection.connect();
if(urlConnection.HTTP_BAD_REQUEST == HttpURLConnection.HTTP_BAD_REQUEST){
/*System.out.println("Cattiva Richiesta: "+urlConnection.getContentEncoding());
System.out.println("Tipo di metodo: "+urlConnection.getRequestMethod());
System.out.println("Tipo di Risposta: "+urlConnection.getResponseCode());
System.out.println("Tipo di messaggio: "+urlConnection.getResponseMessage());
System.out.println("Tipo di contenuto: "+urlConnection.getContentType());
System.out.println("Tipo di lunghezza contenuto: "+urlConnection.getContentLength());
System.out.println("Tipo di doinput: "+urlConnection.getDoInput());
System.out.println("Tipo di doouput: "+urlConnection.getDoOutput());
System.out.println("Tipo di URL: "+urlConnection.getURL());
System.out.println("Tipo di propriet� richiesta: "+urlConnection.getRequestProperty("Content-Type"));
System.out.println("Entra if");
DataOutputStream dout = new DataOutputStream(urlConnection.getOutputStream());
InputStream is = urlConnection.getInputStream();
if(ritornaFile("C:/Ms.tif", dout))System.out.println("Finita lettura");
dout.close();
urlConnection.disconnect();
System.out.println("Fine Applet");
}catch(Exception e) { System.err.println(e.getMessage());e.printStackTrace();}
public boolean ritornaFile(String file, OutputStream ots)throws Exception{
FileInputStream f = null;
try{
f = new FileInputStream(file);
byte[] buf = new byte[4 * 1024];
int byteLetti;
while((byteLetti = f.read()) != -1){ots.writeByte(buf, 0, byteLetti);ots.flush();
while((byteLetti = f.read()) != -1){ots.write(byteLetti);ots.flush();
System.out.println("byteLetti= "+byteLetti);
return true;
}catch(Exception ex){
System.err.println(ex.getMessage());
return false;
}finally{
if(f != null)f.close();
Servlet:
HttpSession ses = request.getSession(true);
System.out.println("Passa servlet "+request.getMethod());
System.out.println("Passa servlet "+ses.getId());
ServletInputStream servletinputstream = request.getInputStream();
DataInputStream dis = new DataInputStream(request.getInputStream());
int c = dis.available();
System.out.println("c="+c);
//ServletOutputStream servletoutputstream
//response.getOutputStream();
response.setContentType("application/octet-stream");
System.out.println("URI= "+request.getRequestURI());
System.out.println("pathTranslated: "+request.getPathTranslated());
System.out.println("RemoteUser: "+request.getRemoteUser());
System.out.println("UserInRole: "+String.valueOf(request.isUserInRole("")));
System.out.println("pathInfo: "+request.getPathInfo());
System.out.println("Protocollo: "+request.getProtocol());
System.out.println("RemoteAddr:"+request.getRemoteAddr());
System.out.println("RemoteHost:"+request.getRemoteHost());
System.out.println("SessionID:"+request.getRequestedSessionId());
System.out.println("Schema:"+request.getScheme());
System.out.println("SeesionValido:"+String.valueOf(request.isRequestedSessionIdValid()));
System.out.println("FromURL:"+String.valueOf(request.isRequestedSessionIdFromURL()));
int i = request.getContentLength();
System.out.println("i: "+i);
ritornaFile(servletinputstream, "C:"+File.separator+"Pluto.tif");
System.out.println("GetMimeType= "+getServletContext().getMimeType("Ms.tif"));
InputStream is = request.getInputStream();
int in = is.available();
System.out.println("Legge dallo stream in="+in);
DataInputStream diss = new DataInputStream(servletinputstream);
int ins = diss.read();
System.out.println("Legge dallo stream ins="+ins);
int disins = diss.available();
System.out.println("Legge dallo stream disins="+disins);
is.close();
System.out.println("Fine Servlet");
catch(Exception exception) {
System.out.println("IOException occured in the Server: " + exception.getMessage());exception.printStackTrace();
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
processRequest(request, response);
/** Returns a short description of the servlet.
public String getServletInfo() {
return "Short description";
public void ritornaFile(InputStream its, String fileDest )throws Exception{
FileOutputStream f = null;
try{
f = new FileOutputStream(fileDest);
byte[] buf = new byte[2 * 1024];
int byteLetti;
while((byteLetti = its.read()) != -1){
f.write(buf, 0, byteLetti);
f.flush();
System.out.println("Byteletti="+byteLetti);
}catch(Exception ex){
System.err.println(ex.getMessage());
}finally{
if(f != null)f.close();Hi all,
Can anyone help me.I am trying to send an audio file from a applet to servlet with HTTP method(no raw sockets), also the servlet shld be able to save the file on the server.Any suggestions welcome.USing audiostream class from javax.sound.sampled.
The part of applet code which calls servlet is :
URL url = new URL("http://" + host + "/" + context + "/servlet/UserUpdateWorkLogAudio?userid=" + userId.replace(' ', '+') + "&FileName=" + filename.replace(' ', '+'));
URLConnection myConnection = url.openConnection();
myConnection.setUseCaches(false);
myConnection.setDoOutput(true);
urlConnection.setRequestProperty("Content-Type", "application/octet-stream");
myConnection.connect();
out = new BufferedOutputStream(myConnection.getOutputStream());
AudioSystem.write(audioInputStream, fileType,out); // IS THIS RIGHT APPROACH?
************************end of applet code**********************
************************servlet code******************************
try
{BufferedInputStream in = new BufferedInputStream(request.getInputStream());
????????What code shld i write here to get the audio file stream
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(filename));
*********************************************end***********************
Thanks
Joe. -
Problem while sending seriailized object from applet to servlet
Hi I m having Object communication between Applet and Servlet.
I m getting error stack trace as
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at com.chat.client.ObjectClient.write(ObjectClient.java:56)
at the line
ObjectInputStream ois = new ObjectInputStream(conn.getInputStream());
thanks in advance
Ravi
the whole code is as follows....
public Serializable write(Serializable obj) throws IOException,ClassNotFoundException{
URLConnection conn = serverURL.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type", "java-internal/"+obj.getClass().getName());
conn.connect();
ObjectOutputStream oos= null;
try{
oos = new ObjectOutputStream(
conn.getOutputStream());
oos.writeObject(obj);
catch(Exception ee){
ee.printStackTrace();
finally{
if(oos!=null){
oos.flush();
oos.close();
return the reponse to the client
ObjectInputStream ois=null;
try{
\\this is the line where i m getting the error
ois = new ObjectInputStream(conn.getInputStream());
return (Serializable)ois.readObject();
catch(Exception ee){
System.out.println("Error in Object Client inputstream ");
ee.printStackTrace();
return null;
finally{
if(ois!=null){
ois.close();Did anyone find a fix to this problem. I am having a similiar problem. Sometimes I receive an EOFException and othertimes I don't. When I do receive an EOFException I check for available() in the stream and it appears 0 bytes were sent to the Servlet from the Applet.
I am always open to produce this problem when I use File->New in IE my applet loads on the new page.. and then I navigate to a JSP sitting on the same application server. When I go to the Applet on the initial page and try to send an object to the server I get an EOFException. No idea! -
About connecting applets to servlets
Hi friens,
I already posted regarding this problem twice but there were no replies. i am really desperate as it is eating up my time. I thought once more i will elaborate it.
I am using the following code to connect an applet to servlet on my tomcat.
/////////// swing code ////////////
URL url = new URL(getCodeBase() + "MasterServlet?handlerName=SendGraphData&sessionid="+sessionid);
URLConnection con = url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setRequestProperty ("Content-Type", "application/octet-stream");
ObjectOutputStream obj;
obj = new ObjectOutputStream(con.getOutputStream());
obj.writeObject(selectedNodes);
obj.writeObject(saveType);
obj.flush();
obj.close();
If i just use the connection to receive objects from servlet it is working fine. But if i use the statement "con.getOutputStream()" in the above code, connection is not getting established with the servlet at all (it is not going into the servlet). But some times it does go into the servlet but throws "java.io.EOFException" at the statment "request.getInputStream()" , which i call in my servlet code to read the objects sent by the applet.
i already wasted one week on this. so, pls try to bail me out.
bye
steveHere is what I have. I did not use ObjectOutputStream as you did, however - just XML. I hope this is useful...
url = new URL(sTheURL);
con = url.openConnection();
con.setRequestProperty("Content-Type", " application/x-www-form-urlencoded");
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setDefaultUseCaches(false);
sXML = URLEncoder.encode(sXML);
sXML = XML + "=" + sXML;
OutputStream out = con.getOutputStream();
out.write(sXML.getBytes());
out.flush();
out.close();
InputStream is = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line=null;
while( (line = br.readLine())!=null)
respBuf.append(line);
br.close(); -
Different things on Applets and Servlets
I use Eclipse. I create two projects: applet and servlet (deploy on Tomcat). One is with the function main, the other has doGet. In these functions I write the same string:
Mac.getInstance("HmacSHA1");
But when I run applet - it's ok, when I deploy servlet and run on Tomcat - there are exception: java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available
How to make it availible at servlet?
Message was edited by:
AntonVatchenkoThe 2 apps (applet versus servlet) are likely using different versions of the Java runtime (and / or security extensions to them). And on one version that security algorithm exists (is built-in, or added as an extension in your JRE's lib/ext folder or something like that); while on the other the algorithm does not exist.
Make the J2EE container (the one running the servlet) use the same version of Java as the applet is. I suppose that's just a hint though, that your next question will be something like "Ok, how do I do that?". My job was just to point you in the right direction. Hopefully I've done that. -
Problem in sending image from applet to servlet
dear friends,
i have a need to send an image from applet to servlet via HttpConnection and getting back that image from applet.
i am struggling with this sice many hours and got tired by searching any post that would help me but haven't got yet.
i tried using this code but it dosent make any execution sit right. i got NPE at ImageIcon.getDescription() line;
at applet side
jf.setContentPane(getJContentPane());
FileDialog fd=new FileDialog(jf,"hi");
fd.setMode(FileDialog.LOAD);
fd.setVisible(true);
v=new Vector();
try{
FileInputStream fis=new FileInputStream(new File(fd.getDirectory()+fd.getFile()));
byte[] imgbuffer=new byte[fis.available()];
fis.read(imgbuffer);
ImageIcon imgdata=new ImageIcon(imgbuffer);
v.add(0,imgicon);
String strwp ="/UASProject/Storeimage";
URL servletURL = new URL(getCodeBase(),strwp);
HttpURLConnection servletCon = (HttpURLConnection)servletURL.openConnection();
servletCon.setDoInput(true);
servletCon.setDoOutput(true);
servletCon.setUseCaches(false);
servletCon.setDefaultUseCaches(false);
servletCon.setRequestMethod("POST");
servletCon.setRequestProperty("Content-Type", "application/octet-stream");
servletCon.connect();
ObjectOutputStream oboutStream = new ObjectOutputStream(servletCon.getOutputStream());
oboutStream.writeObject(v);
v.remove(0);
oboutStream.flush();
oboutStream.close();
//read back from servlet
ObjectInputStream inputStream = new ObjectInputStream(servletCon.getInputStream());
v= (Vector)inputStream.readObject();
imgicon=(ImageIcon)v.get(1);
showimg.setIcon(imgicon);
this.getContentPane().validate();
this.validate();
inputStream.close();
// repaint();
}catch(Exception e){e.printStackTrace();} and this is at servlet side
try {
Vector v=new Vector();
ObjectInputStream inputFromjsp = new ObjectInputStream(request.getInputStream());
v = (Vector)inputFromjsp.readObject();
imgicon=(ImageIcon)v.get(0);
inputFromjsp.close();
System.out.println(imgicon.getDescription());
v.remove(0);
v.add(1,imgicon);
//sending back to applet
response.setContentType("application/octet-stream");
ObjectOutputStream oboutstream=new ObjectOutputStream(response.getOutputStream());
oboutstream.writeObject(v);
oboutstream.flush();
oboutstream.close();
} catch (Exception e) {e.printStackTrace();} i really need your help. please let me out of this headche
thanks
Edited by: san_4u on Nov 24, 2007 1:00 PMBalusC wrote:
san_4u wrote:
how can i made a HttpClient PostMethod using java applets? as i have experience making request using HttpURLConnection.POST method. ok first of all i am going make a search of this only after i will tell. please be onlineOnce again, see link [3] in my first reply of your former topic.
yeah! i got the related topic at http://www.theserverside.com/tt/articles/article.tss?l=HttpClient_FileUpload. please look it, i am reading it right now and expecting to be reliable for me.
well what i got, when request made by html code(stated above) then all the form fields and file data mixed as binary data and available in HttpServletRequest.getinputstream. and at servlet side we have to use a mutipart parser of DiskFileItemFactory class that automatically parse the file data and return a FileItem object cotaing the actual file data,right?.You can also setup the MultipartFilter in your environment and don't >care about it further. Uploaded files will be available as request attributes in the servlet.is the multipartfilter class file available in jar files(that u suggested to add in yours article) so that i can use it directly? one more thing the import org.apache.commons.httpclient package is not available in these jar files, so where can got it from?
one mere question..
i looked somewhere that when we request for a file from webserver using web browser then there is a server that process our request and after retrieving that file from database it sends back as response.
now i confused that, wheather these webservers are like apache tomcat, IBM's webspher etc those processes these request or there is a unique server that always turned on and process all the request?
because, suppose in an orgnisation made it's website using its own server then, in fact, all the time it will not turned on its server or yes it will? and a user can make a search for kind of information about this orgnisation at any time.
hopes, you will have understand my quary, then please let me know the actual process
thanks
Edited by: san_4u on Nov 25, 2007 11:25 AM
Maybe you are looking for
-
I took delivery of a brand new 21.5" iMac a week ago. When it first arrived the internet was fine - then intermittently it started to go slow or just fail to load pages even though I could see it was connected to the router and had full signal streng
-
Videos won't play in Firefox, but play in other browsers
I'm running Firefox 14 with a default setting to Yahoo. All videos that are connected either through a link or directly connected through youtube will not play. I either get a white screen with nothing displayed or a black screen with an error messag
-
Shut off Powerbook Display without closing the Display
I just set up a great external monitor and everything is appearing on the external perfectly. There is nothing appearing on the PBs internal display except for the blue desktop background. I don't want the built in display to get burned with the blue
-
How is licensed the Oracle Service Bus? wasnt it part of the SOA Suite?
Why it is not clear for us how the oracle service bus is licensed, in terms that we thought it was included on the Oracle SOA Suite , we are referring to newer releases is it licensed a part from the soa suite? Thanks!
-
I have tried everything ....I need step by step instructions because I need my itunes back up and running! thanks