Niente da fare, continua a darmi errore nella creazione del Robot che mi cattura lo schermo creandomi il file da sparare poi sul server.
Pensavo che il problema fosse strettamente legato alla parte in cui l'immagine venisse salvata.
Al momento mi ritrovo cosi :
codice:
try {
Point punto;
Dimension dimensione=new Dimension(600,470);
punto=getLocationOnScreen();
Rectangle rettangolo=new Rectangle(punto,dimensione);
Robot robot = new Robot();
BufferedImage bufferedImage = robot.createScreenCapture(rettangolo);
File imageFile = new File("screenshot.jpg");
//ImageIO.write(bufferedImage, "jpg", imageFile);
/************************************/
FileInputStream in = new FileInputStream(imageFile);
byte[] buf=new byte[in.available()];
int bytesread = 0;
String ip="ip del server";
String toservlet = "http://"+ip+"/applet/Servlet";
URL servleturl = new URL(toservlet);
URLConnection servletconnection = servleturl.openConnection();
servletconnection.setDoInput(true);
servletconnection.setDoOutput(true);
servletconnection.setUseCaches(false);
servletconnection.setDefaultUseCaches(false);
DataOutputStream out=new DataOutputStream(servletconnection.getOutputStream());
while( (bytesread = in.read( buf )) > -1 )
{
out.write( buf, 0, bytesread );
}
out.flush();
out.close();
in.close();
/************************************/
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
con la relativa servlet :
codice:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ProvaServlet extends HttpServlet
{
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
ServletContext sc = this.getServletContext();
try
{
String fileName = "screenshot.jpg";
String path = sc.getRealPath(File.separator)+fileName;
File yourFile = new File(path);
System.out.println("questo path... "+path);
FileOutputStream toFile = new FileOutputStream( yourFile );
DataInputStream fromClient = new DataInputStream( req.getInputStream() );
byte[] buff = new byte[1024];
int cnt = 0;
while( (cnt = fromClient.read( buff )) > -1 ) {
toFile.write( buff, 0, cnt );
}
toFile.flush();
toFile.close();
fromClient.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
L'errore spoolato a console è sempre lo stesso :
Caricata immagine:
Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied (java.awt.AWTPermission createRobot)
at java.security.AccessControlContext.checkPermission (Unknown Source)
at java.security.AccessController.checkPermission(Unk nown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.awt.Robot.checkRobotAllowed(Unknown Source)
at java.awt.Robot.init(Unknown Source)
at java.awt.Robot.<init>(Unknown Source)
at MyApplet.finish(MyApplet.java:65)
at MyApplet$2.actionPerformed(MyApplet.java:44)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)