Ciao a tutti, il mio problema nasce dall'esigenza di creare un server web in eclipse per permettere ad un client di inviare email sfruttando javamail.
Ho recuperato online un piccolo progetto ,importato poi su Eclipse, che permette attraverso un form su una pagina jsp di inviare l'email e ricevere un messaggio di ok o eventualmente un errore su un'altra pagina.
Il progetto è cosi formato:

http://imageshack.us/photo/my-images...6352alle1.png/


EmailSendingServlet.java:
codice:
package net.codejava.email;
 
import java.io.IOException;
 
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * A servlet that takes message details from user and send it as a new e-mail
 * through an SMTP server.
 * 
 * @author www.codejava.net
 * 
 */
@WebServlet("/EmailSendingServlet")
public class EmailSendingServlet extends HttpServlet {
    private String host;
    private String port;
    private String user;
    private String pass;
 
    public void init() {
        // reads SMTP server setting from web.xml file
        ServletContext context = getServletContext();
        host = context.getInitParameter("host");
        port = context.getInitParameter("port");
        user = context.getInitParameter("user");
        pass = context.getInitParameter("pass");
    }
 
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // reads form fields
        String recipient = request.getParameter("recipient");
        String subject = request.getParameter("subject");
        String content = request.getParameter("content");
 
        String resultMessage = "";
 
        try {
            EmailUtility.sendEmail(host, port, user, pass, recipient, subject,
                    content);
            resultMessage = "The e-mail was sent successfully";
        } catch (Exception ex) {
            ex.printStackTrace();
            resultMessage = "There were an error: " + ex.getMessage();
        } finally {
            request.setAttribute("Message", resultMessage);
            getServletContext().getRequestDispatcher("/Result.jsp").forward(
                    request, response);
        }
    }
package net.codejava.email;
 
import java.io.IOException;
 
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * A servlet that takes message details from user and send it as a new e-mail
 * through an SMTP server.
 * 
 * @author www.codejava.net
 * 
 */
@WebServlet("/EmailSendingServlet")
public class EmailSendingServlet extends HttpServlet {
    private String host;
    private String port;
    private String user;
    private String pass;
 
    public void init() {
        // reads SMTP server setting from web.xml file
        ServletContext context = getServletContext();
        host = context.getInitParameter("host");
        port = context.getInitParameter("port");
        user = context.getInitParameter("user");
        pass = context.getInitParameter("pass");
    }
 
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // reads form fields
        String recipient = request.getParameter("recipient");
        String subject = request.getParameter("subject");
        String content = request.getParameter("content");
 
        String resultMessage = "";
 
        try {
            EmailUtility.sendEmail(host, port, user, pass, recipient, subject,
                    content);
            resultMessage = "The e-mail was sent successfully";
        } catch (Exception ex) {
            ex.printStackTrace();
            resultMessage = "There were an error: " + ex.getMessage();
        } finally {
            request.setAttribute("Message", resultMessage);
            getServletContext().getRequestDispatcher("/Result.jsp").forward(
                    request, response);
        }
    }
}
EmailUtility.java
codice:
package net.codejava.email;
 
import java.util.Date;
import java.util.Properties;
 
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
/**
 * A utility class for sending e-mail messages
 * @author www.codejava.net
 *
 */
public class EmailUtility {
    public static void sendEmail(String host, String port,
            final String userName, final String password, String toAddress,
            String subject, String message) throws AddressException,
            MessagingException {
 
        // sets SMTP server properties
        Properties properties = new Properties();
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", port);
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true");
 
        // creates a new session with an authenticator
        Authenticator auth = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }
        };
 
        Session session = Session.getInstance(properties, auth);
 
        // creates a new e-mail message
        Message msg = new MimeMessage(session);
 
        msg.setFrom(new InternetAddress(userName));
        InternetAddress[] toAddresses = { new InternetAddress(toAddress) };
        msg.setRecipients(Message.RecipientType.TO, toAddresses);
        msg.setSubject(subject);
        msg.setSentDate(new Date());
        msg.setText(message);
 
        // sends the e-mail
        Transport.send(msg);
 
    }
}
web.xml:
codice:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>EmailSendingWebApp</display-name>
 
    
    <context-param>
        <param-name>host</param-name>
        <param-value>smtp.gmail.com</param-value>
    </context-param>
 
    <context-param>
        <param-name>port</param-name>
        <param-value>25</param-value>
    </context-param>
 
    <context-param>
        <param-name>port</param-name>
        <param-value>587</param-value>
    </context-param>
 
    <context-param>
        <param-name>user</param-name>
        <param-value>YOUR_EMAIL</param-value>
    </context-param>
 
    <context-param>
        <param-name>pass</param-name>
        <param-value>YOUR_PASSWORD</param-value>
    </context-param>
 
    <welcome-file-list>
        <welcome-file>EmailForm.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Lanciando EmailForm su tomcat il tutto funziona correttamente.
Tuttavia io vorrei creare un web server su Eclipse accessibile tramite WSDL dal mio client.

Molto scolasticamente avevo creare un server web in grado di ricercare su un DB username e password , restituendo true/false al client.
Lato SERVER nel package my.login ho prima creato un interface "login" e nello stesso package ho implementato l'interfaccia "loginImpl" con il metodo per accedere al DB e restituire il messaggio di risposta. Dopo di che , tasto destro su "loginImpl" > Web Services > Create Web Service. Cosi facendo viene generato il WSDL che mi serve.
Nell'altro progetto, lato CLIENT nel package my.login , tasto destro > new other > WSDL Service Client e ho selezionato il WSDL prima creato. Cosi facendo riesco a richiamare dal client le funzionalità offerte dal web server. Anche questo sia testato sul server con Test With Web Services Explore dal WSDL , sia lanciando il client , funziona correttamente.

Quello che vorrei fare è creare un WSDL partendo dal progetto EmailSendingWebApp per poterlo poi richiamare da un form del client. Ho provato a creare il WSDL partendo dalla classe EmailUtility.java , il WSDL viene creato ma nel testarlo non funziona.

Come posso fare per risolvere il problema, aspetto ogni vostro suggerimento.