PDA

View Full Version : [java servlets] Aiutatemi a farla funzionare!!!!


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)

beppegrillo
05-03-2005, 10:58
Una servlet non può essere interpretata da un web server, ma ha bisogno di una servlet engine come tomcat ;)

capoccia
05-03-2005, 11:39
forse mi sono espresso male,io uso Apache Tomcat 5.0!

Tu ne capisci di servlet???A me interessa la parte j2me del programma,ma devo riuscire a fare la servlets altrimenti non mi funziona,sono che non ci riesco!

beppegrillo
05-03-2005, 12:23
Originariamente inviato da capoccia
forse mi sono espresso male,io uso Apache Tomcat 5.0!

Tu ne capisci di servlet???A me interessa la parte j2me del programma,ma devo riuscire a fare la servlets altrimenti non mi funziona,sono che non ci riesco!
Beh ok, non avevi specificato che usavi tomcat, ma avevi detto apache.
Cmq, hai scompattato i file in webapps, non dovresti fare null'altro.
Come richiami la servlet?

capoccia
05-03-2005, 13:48
no,ho fatto tutto io.
Ho messo a disposizione il file compresso perchè cosi se persone disponibili come te m voglio aiutare si scaricano il file compresso e hanno gia tutto pronto per fare le modifiche.

La servlet la chiamo dal cellulare con una riga cosi:

htpp://localhost:8080/ServletKsms/?text=ciao&to=xxx@tin.it&from=yyy@tin.it&subj=

Ho scritto apposta htpp al posto di http cosi il forum non me lo riconosce come link e nonlo abbrevia!

Chiamando la servlets dal cellulare con questa riga dovrei inviare una email a: xxx@tin.it da yyy@tin.it senza oggetto e con testo" ciao"

Solo che non mi va,in particolare contralla il file index.html e web.xml che non ho idea di come si fa a scriverli!!!
Grazie

capoccia
07-03-2005, 18:29
up