capoccia
05-03-2005, 10:54
Ciao a tutti,
Ho scritto un programma in j2me che tramite GPRS si connette a una servlet con un indirizzo di questo tipo:
http://localhost:8080/ServletKsms/?text=ciao&to=xxx@tin.it&from=yyy@tin.it&subj=
Dove la prima parte è dove si trova la servlet nel mio webServer Apache tomcat 5.0 e la secondo sono i parametri del metodo get
Premetto che non so usare ne le servlet ne apache,il mio scopo era solo programmare in j2me solo che volendo fare un programma che invia email in midp1.0 mi devo appoggiare ad una servlets.......questa l'ho scopiazzata e riadattata,solo che non riesco a farla funzionare.La servlet è questa
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
public class ServletKsms extends HttpServlet
{
String MAIL_SERVER_URL = "mail.tin.it" ; //url mail server ip
int MAIL_PORT = 25; //mail server smtp port
Socket socket; // Socket for sending mail
DataInputStream in; // Input Stream from socket
PrintStream out; // Output Stream for socket
String str; // for reading server comments
public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out;
//String strHelloTo = "World";
ServletKsms(request.getParameter("to"),request.getParameter("from"),request.getParameter("subj"),request.getParameter("text"));
//Defines response MIME type
response.setContentType("text/html");
out = response.getWriter();
// Sends the actual response data
out.println("n");
out.println("n");
out.println("Ksms - Messaggio inviaton");
out.println("n");
out.println("n");
out.close();
}
public void ServletKsms(String to, String from, String subject, String message) throws
ProtocolException, IOException
{
Socket socket = new Socket(MAIL_SERVER_URL, MAIL_PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
if(!checkStatus("220")) throw new ProtocolException(str);
out.println( "HELO " + MAIL_SERVER_URL );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "MAIL FROM: " + from );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "RCPT TO: " + to );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "DATA" );
out.flush() ;
if(!checkStatus("354")) throw new ProtocolException(str);
out.println("From: " + from);
out.println("To: " + to);
out.println( "Subject: " + subject + "n" );
out.flush();
out.println("");
out.println( message ) ;
out.println(".") ;
out.flush();
if(!checkStatus("250")) throw new ProtocolException(str);
out.println("QUIT");
out.flush();
in.close();
socket.close();
}
private boolean checkStatus(String RFC)throws ProtocolException,IOException
{
str = in.readLine();
System.out.println(str);
if (!str.startsWith(RFC)) throw new ProtocolException(str);
while (str.indexOf('-') == 3)
{
str = in.readLine();
if (!str.startsWith("RFC")) throw new ProtocolException(str);
}
return true;
}
}
poi ho letto che per farla funzionare la devo mettere in una cartella in apache in questo modo:
C:\Programmi\Tomcat 5.0\webapps\ServletKsms
all'interno della cartella ServletKsms c'è una cartella WEB-INF è un index.html con scritto ,ho letto che serve ma non ho idea a cosa......
<html>
<body>
<h2>KSMS by capoccia</h2>
<hr>
</body>
</html>
All'interno della cartella WEB-INF c'è la cartella classes(che contiene il .class del programma) e un file web.xml con scritto :
<?xml version="1.0"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>alias</servlet-name>
<servlet-class>ServletKsms</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>alias</servlet-name>
<url-pattern>ServletKsms</url-pattern>
</servlet-mapping>
</web-app>
ma anche di questo ingnoro come si scrive,ho solo cercato di adattarlo.
In definitiva vi chiedo come mai non funziona e se potete dirmi come scrivere il file web.xml .
Grazie
Potete scaricare la mia servlet da qua
http://www.webalice.it/xxxxxxxxxxx/ServletKsms.zip (http://www.webalice.it/diego.giaretton/ServletKsms.zip)
Ho scritto un programma in j2me che tramite GPRS si connette a una servlet con un indirizzo di questo tipo:
http://localhost:8080/ServletKsms/?text=ciao&to=xxx@tin.it&from=yyy@tin.it&subj=
Dove la prima parte è dove si trova la servlet nel mio webServer Apache tomcat 5.0 e la secondo sono i parametri del metodo get
Premetto che non so usare ne le servlet ne apache,il mio scopo era solo programmare in j2me solo che volendo fare un programma che invia email in midp1.0 mi devo appoggiare ad una servlets.......questa l'ho scopiazzata e riadattata,solo che non riesco a farla funzionare.La servlet è questa
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
public class ServletKsms extends HttpServlet
{
String MAIL_SERVER_URL = "mail.tin.it" ; //url mail server ip
int MAIL_PORT = 25; //mail server smtp port
Socket socket; // Socket for sending mail
DataInputStream in; // Input Stream from socket
PrintStream out; // Output Stream for socket
String str; // for reading server comments
public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
PrintWriter out;
//String strHelloTo = "World";
ServletKsms(request.getParameter("to"),request.getParameter("from"),request.getParameter("subj"),request.getParameter("text"));
//Defines response MIME type
response.setContentType("text/html");
out = response.getWriter();
// Sends the actual response data
out.println("n");
out.println("n");
out.println("Ksms - Messaggio inviaton");
out.println("n");
out.println("n");
out.close();
}
public void ServletKsms(String to, String from, String subject, String message) throws
ProtocolException, IOException
{
Socket socket = new Socket(MAIL_SERVER_URL, MAIL_PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
if(!checkStatus("220")) throw new ProtocolException(str);
out.println( "HELO " + MAIL_SERVER_URL );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "MAIL FROM: " + from );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "RCPT TO: " + to );
out.flush() ;
if(!checkStatus("250")) throw new ProtocolException(str);
out.println( "DATA" );
out.flush() ;
if(!checkStatus("354")) throw new ProtocolException(str);
out.println("From: " + from);
out.println("To: " + to);
out.println( "Subject: " + subject + "n" );
out.flush();
out.println("");
out.println( message ) ;
out.println(".") ;
out.flush();
if(!checkStatus("250")) throw new ProtocolException(str);
out.println("QUIT");
out.flush();
in.close();
socket.close();
}
private boolean checkStatus(String RFC)throws ProtocolException,IOException
{
str = in.readLine();
System.out.println(str);
if (!str.startsWith(RFC)) throw new ProtocolException(str);
while (str.indexOf('-') == 3)
{
str = in.readLine();
if (!str.startsWith("RFC")) throw new ProtocolException(str);
}
return true;
}
}
poi ho letto che per farla funzionare la devo mettere in una cartella in apache in questo modo:
C:\Programmi\Tomcat 5.0\webapps\ServletKsms
all'interno della cartella ServletKsms c'è una cartella WEB-INF è un index.html con scritto ,ho letto che serve ma non ho idea a cosa......
<html>
<body>
<h2>KSMS by capoccia</h2>
<hr>
</body>
</html>
All'interno della cartella WEB-INF c'è la cartella classes(che contiene il .class del programma) e un file web.xml con scritto :
<?xml version="1.0"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>alias</servlet-name>
<servlet-class>ServletKsms</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>alias</servlet-name>
<url-pattern>ServletKsms</url-pattern>
</servlet-mapping>
</web-app>
ma anche di questo ingnoro come si scrive,ho solo cercato di adattarlo.
In definitiva vi chiedo come mai non funziona e se potete dirmi come scrivere il file web.xml .
Grazie
Potete scaricare la mia servlet da qua
http://www.webalice.it/xxxxxxxxxxx/ServletKsms.zip (http://www.webalice.it/diego.giaretton/ServletKsms.zip)