Pessoal,
estou com problemas na comunicação entre applet e servlet.
abaixo, seguem os métodos getConnection(),sendObject() e receiveObject() do applet:
private URLConnection getConnection() throws IOException
{
String conexaoServlet = "http://localhost:8080/CilindroSecador/Acesso";
URL u = new URL(conexaoServlet);
URLConnection con = u.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-type","application/octet-stream");
con.setAllowUserInteraction(false);
return con;
}
private void sendObject (URLConnection con, Object obj) throws IOException
{
ObjectOutputStream out = new ObjectOutputStream(con.getOutputStream());
if (obj != null){
out.writeObject(obj);
}
out.close();
}
private Object receiveObject(URLConnection con) throws Exception
{
ObjectInputStream in = new ObjectInputStream (con.getInputStream());
Object obj = in.readObject();
return obj;
}
trecho do codigo do applet onde os métodos são invocados:
void loginBotao_actionPerformed(ActionEvent e) {
try {
URLConnection con = getConnection();
sendObject(con, Conect);
String c = (String)receiveObject(con);
}
}
catch ( Exception ex ) {
System.err.println( "Não Foi Possível a Conexão" + ex );
}
}
O servlet invocado é Acesso.class
Codigo:
public class Acesso extends HttpServlet {
private Connection connection;
public String Conecta(String c) {
String conecta = "";
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/cilindrosecador?user=angelo");
c = "true";
}
catch ( SQLException sqlex ) {
System.err.println( "Não Foi Possível a Conexão Servlet" );
sqlex.printStackTrace();
}
catch (ClassNotFoundException ex) {
//loginDisplay.setText("ClassNotFoundException");
}
catch (IllegalAccessException ex1) {
// loginDisplay.setText("IllegalAccessException");
}
catch (InstantiationException ex1) {
// loginDisplay.setText("InstantiationException");
}
return (c);
}
private Object receiveObject(HttpServletRequest req) throws Exception
{
ObjectInputStream in =new ObjectInputStream(req.getInputStream());
Object obj = in.readObject();
in.close();
return obj;
}
private void sendObject(HttpServletResponse resp, Object obj) throws
IOException {
ObjectOutputStream out = new ObjectOutputStream(resp.getOutputStream());
out.writeObject(obj);
out.close();
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
{
try{
Object obj = receiveObject(req);
String c = (String)obj;
Conecta(c);
sendObject(resp, c);
}
catch(Exception e){
System.err.println( e );
}
}
}
Configurei o Tomcat, JAVA_HOME, CATALINA_HOME etc… Testei o mesmo e está funcionando. Porém, quando rodo o applet, e clico no botão que dispara requisições ao servlet, ele para no método receiveObject(), do applet:
ObjectInputStream in = new ObjectInputStream (con.getInputStream());
e mostra a seguinte mensagem:
java.io.FilenotFoundException http://localhost:8080/CilindroSecador/Acesso
Criei a minha aplicação em C:/TC2/CilindroSecador
Configurei o Tomcat para trabalhar neste diretório, porém eu acredito que não está certo e que o erro vem dele.
alguém saberia me explicar o motivo do erro?
Obrigado
