Vuelvo a estar atascado con mi proyecto sobre java, esta vez por culpa de un chat y del javamail (el problema que tuve con éste hace tiempo ya lo solucione gracias a Greeneyed!!).
He hecho los programa de ambas aplicaciones y me he instalao el Tomcat en mi ordenador de casa, como servidor SMTP me he bajao el MiniRelay. El caso es que ambas cosas funcionan sin problemas cuando las pruebo en este servidor, pero cuando las subo al servidor de mi uni entonces no puedo ejecutar ninguna de las 2. Entiendo que es normal que esto ocurra ya que la mayoria de los puertos de la uni solo son accesibles dsde dentro de la uni.
Probe desde dentro de la uni y tampoco pude ejecutar ninguna de las 2 cosas, y los errores que obtenia eran los mismos que desde casa, por ahora os comentare el del javamail porque no os quiero aburrrir demasiao jeje.
Para hacer el proyecto tenemos asignados unos puertos TCP/UDP para sockets y yo puedo usar el 4210 por ejemplo.El caso es que obtengo este error:
javax.mail.MessagingException: Could not connect to SMTP host: 158.227.68.208, port: 4210;
nested exception is:
java.net.ConnectException: Connection refused: connect
Mi profesor me dice que esto no puede darme porque los puertos estan activados y que otros grupos no han tenido estos problemas, y no sabe que pasa, ya que el ordenador no tiene firewall de windows activado y creo que tampoco el del antivirus. Habia pensado en cambiar los archivos java.policy, pero como no soy el administrador no puedo.
LLegado este punto me estoy quedando sin opciones, probe a ejecutar el comando "netstat -putan" para ver los servicios arrancados en la maquina, y no vi que aparecieran los puertos que tenemos asignados.
Yo me planteo varias opciones:
Que los puertos esten cerrados(cosa que parece improbable) o que tenga algo mal del codigo, tal vez no he abierto bien la conexion o tiene que ver con los sockets. Por eso dejao aqui el codigo que no es nada del otro mundo:
Código PHP:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
import java.applet.*;
import javax.activation.*;
/**
* Sample application using Frame
*.
* @author
* @version 1.00 06/05/08
*/
public class Mail extends JApplet {
String mailHost="158.227.68.208";
JLabel toLabel=new JLabel("Para:");
JLabel fromLabel=new JLabel("De:");
JLabel subjectLabel=new JLabel("Asunto:");
JLabel contentLabel = new JLabel("Mensaje");
JLabel statusLabel = new JLabel("Status:");
JTextField destination = new JTextField();
JTextField source = new JTextField();
JTextField subject = new JTextField();
JTextArea content = new JTextArea();
JButton send = new JButton("Enviar");
JTextArea status = new JTextArea();
public static void main(String args[]){
Mail app = new Mail();
}
public Mail(){
layoutComponents();
send.addActionListener(new ButtonHandler());
}
void layoutComponents(){
int x=10;
int y = 50;
toLabel.setBounds(x,y,50,25);
destination.setBounds(x+70,y,300,25);
fromLabel.setBounds(x,y+40,50,25);
source.setBounds(x+70,y+40,300,25);
subjectLabel.setBounds(x,y+80,50,25);
subject.setBounds(x+70,y+80,300,25);
contentLabel.setBounds(x,y+120,50,25);
content.setBounds(x+70,y+120,300,100);
statusLabel.setBounds(x,y+240,50,25);
status.setBounds(x+70,y+240,300,100);
send.setBounds(400,y,100,30);
add(toLabel);
add(destination);
add(send);
add(fromLabel);
add(source);
add(subjectLabel);
add(subject);
add(contentLabel);
add(content);
add(statusLabel);
add(status);
add(new JLabel(""));
}
void sendMessage(){
Properties properties = new Properties();
properties.put("mail.smtp.host",mailHost);
properties.put("mail.smtp.port", "4210");
properties.put("mail.from",source.getText());
Session session=Session.getInstance(properties,null);
try {
Message message = new MimeMessage(session);
InternetAddress[] address={ new InternetAddress(destination.getText())};
message.setRecipients(Message.RecipientType.TO,address);
message.setFrom(new InternetAddress(source.getText()));
message.setSubject(subject.getText());
message.setContent(content.getText(),"text/plain");
Transport transport = session.getTransport(address[0]);
transport.addConnectionListener(new ConnectionHandler());
transport.addTransportListener(new TransportHandler());
transport.connect();
transport.sendMessage(message,address);
}catch(Exception e){
status.setText(e.toString());
}
}
class ConnectionHandler extends ConnectionAdapter {
public void opened(ConnectionEvent e){
status.setText("Connection opened.");
}
public void disconnected(ConnectionEvent e){
status.setText("Connection disconnected.");
}
public void closed(ConnectionEvent e){
status.setText("Connection closed.");
}
}
class TransportHandler extends TransportAdapter {
public void messageDelivered(TransportEvent e){
status.setText("Message delivered.");
}
public void messageNotDelivered(TransportEvent e){
status.setText("Message Not delivered.");
}
public void messagePartiallyDelivered(TransportEvent e){
status.setText("Message partially delivered.");
}
}
class ButtonHandler implements ActionListener {
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
if(s.equals("Enviar")) sendMessage();
}
}
class MenuItemHandler implements ActionListener {
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
if(s=="Exit"){
System.exit(0);
}
}
}
class WindowEventHandler extends WindowAdapter {
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
}
Un saludo!!