Je suis nouvellement en développement de serveur et ai été démarré à partir d'un tutoriel facile par Lars Vogel. développement de servlets et de JSP avec Eclipse WTP .
Pas à pas accordez ce tutoriel:
http://localhost:8080/
affiche la page Tomcat correcte;DAO
;Et ici, j'ai attrapé la prochaine invite:
Sep 15, 2013 3:40:39 PM org.Apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the Java.library.path: /usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
Sep 15, 2013 3:40:42 PM org.Apache.Tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.Eclipse.jst.jee.server:com.filecounter' did not find a matching property.
Sep 15, 2013 3:40:43 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Sep 15, 2013 3:40:43 PM org.Apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 15, 2013 3:40:43 PM org.Apache.catalina.startup.Catalina load
INFO: Initialization processed in 5203 ms
Sep 15, 2013 3:40:43 PM org.Apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 15, 2013 3:40:43 PM org.Apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
Sep 15, 2013 3:40:45 PM org.Apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [171] milliseconds.
Sep 15, 2013 3:40:46 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 15, 2013 3:40:46 PM org.Apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 15, 2013 3:40:46 PM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 2882 ms
Voici le contenu du dossier Tomcat/lib
:
nazar_art@nazar-desctop:/usr/local/Tomcat/Apache-Tomcat-7.0.42/lib$ ls -lg
total 6132
-rwxrwxrwx 1 nazar_art 15264 Jul 2 10:59 annotations-api.jar
-rwxrwxrwx 1 nazar_art 54142 Jul 2 10:59 catalina-ant.jar
-rwxrwxrwx 1 nazar_art 134215 Jul 2 10:59 catalina-ha.jar
-rwxrwxrwx 1 nazar_art 1581311 Jul 2 10:59 catalina.jar
-rwxrwxrwx 1 nazar_art 257520 Jul 2 10:59 catalina-tribes.jar
-rwxrwxrwx 1 nazar_art 1801636 Jul 2 10:59 ecj-4.2.2.jar
-rwxrwxrwx 1 nazar_art 46085 Jul 2 10:59 el-api.jar
-rwxrwxrwx 1 nazar_art 123241 Jul 2 10:59 jasper-el.jar
-rwxrwxrwx 1 nazar_art 599428 Jul 2 10:59 jasper.jar
-rwxrwxrwx 1 nazar_art 88690 Jul 2 10:59 jsp-api.jar
-rwxrwxrwx 1 nazar_art 177598 Jul 2 10:59 servlet-api.jar
-rwxrwxrwx 1 nazar_art 6873 Jul 2 10:59 Tomcat-api.jar
-rwxrwxrwx 1 nazar_art 796527 Jul 2 10:59 Tomcat-coyote.jar
-rwxrwxrwx 1 nazar_art 235411 Jul 2 10:59 Tomcat-dbcp.jar
-rwxrwxrwx 1 nazar_art 77364 Jul 2 10:59 Tomcat-i18n-es.jar
-rwxrwxrwx 1 nazar_art 48693 Jul 2 10:59 Tomcat-i18n-fr.jar
-rwxrwxrwx 1 nazar_art 51678 Jul 2 10:59 Tomcat-i18n-ja.jar
-rwxrwxrwx 1 nazar_art 124006 Jul 2 10:59 Tomcat-jdbc.jar
-rwxrwxrwx 1 nazar_art 23201 Jul 2 10:59 Tomcat-util.jar
Voici le contenu de catalina.2013-09-15.log .
Mise à jour:
Voici le tutoriel:
Installation d'Apache Tomcat Native sur Linux Ubuntu 12.04
Update2:
Voici le contenu de Data Access Object:
public class FileDao {
public int getCount() {
int count = 0;
// Load the file with the counter
FileReader fileReader = null;
BufferedReader bufferedReader = null;
PrintWriter writer = null ;
try {
File f = new File("FileCounter.initial");
if (!f.exists()) {
f.createNewFile();
writer = new PrintWriter(new FileWriter(f));
writer.println(0);
}
if (writer !=null){
writer.close();
}
fileReader = new FileReader(f);
bufferedReader = new BufferedReader(fileReader);
String initial = bufferedReader.readLine();
count = Integer.parseInt(initial);
} catch (Exception ex) {
if (writer !=null){
writer.close();
}
}
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return count;
}
public void save(int count) throws Exception {
FileWriter fileWriter = null;
PrintWriter printWriter = null;
fileWriter = new FileWriter("FileCounter.initial");
printWriter = new PrintWriter(fileWriter);
printWriter.println(count);
// Make sure to close the file
if (printWriter != null) {
printWriter.close();
}
}
}
Et voici le code Servlet:
public class FileCounter extends HttpServlet {
private static final long serialVersionUID = 1L;
int count;
private FileDao dao;
public void init() throws ServletException {
dao = new FileDao();
try {
count = dao.getCount();
} catch (Exception e) {
getServletContext().log("An exception occurred in FileCounter", e);
throw new ServletException("An exception occurred in FileCounter"
+ e.getMessage());
}
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Set a cookie for the user, so that the counter does not increate
// every time the user press refresh
HttpSession session = request.getSession(true);
// Set the session valid for 5 secs
session.setMaxInactiveInterval(5);
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
if (session.isNew()) {
count++;
}
out.println("This site has been accessed " + count + " times.");
}
public void destroy() {
super.destroy();
try {
dao.save(count);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Je n'ai pas encore eu web.xml
.
Comment résoudre ce problème?
introuvable sur Java.library.path:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
La bibliothèque native est attendue dans l'un des emplacements suivants
/usr/Java/packages/lib/AMD64
/usr/lib64
/lib64
/lib
/usr/lib
et pas dans
Tomcat/lib
Les fichiers dans Tomcat/lib
sont tous des fichiers jar
et sont ajoutés par Tomcat au fichier classpath
afin qu’ils soient disponibles pour votre application.
Tomcat a besoin de la bibliothèque native pour fonctionner plus efficacement sur la plate-forme sur laquelle elle est installée et ne peut donc pas être un jar
. Pour Linux, cela pourrait être un .so
fichier, pour Windows cela pourrait être un .dll
fichier.
Il suffit de téléchargez la bibliothèque native de votre plate-forme et placez-la dans l'un des emplacements attendus par Tomcat.
Notez que vous n'êtes pas obligé d'avoir cette lib à des fins de développement/test. Tomcat fonctionne très bien sans ça.
org.Apache.catalina.startup.Catalina start INFO: Démarrage du serveur en 2882 ms
[~ # ~] éditer [~ # ~]
La sortie que vous obtenez est très normale, c’est juste quelques-unes des sorties de journalisation de Tomcat, la ligne ci-dessus indique que le serveur a correctement démarré et qu’il est prêt à fonctionner.
Si vous ne parvenez pas à exécuter votre servlet, après la run on sever
commande Eclipse ouvre une fenêtre de navigateur (intégrée (par défaut) ou externe, selon votre configuration). Si rien ne s'affiche sur le navigateur, consultez la barre d'adresse du navigateur pour voir si votre servlet a été demandé ou non.
Ça devrait être quelque chose comme ça
http://localhost:8080/<your-context-name>/<your-servlet-name>
EDIT 2
Essayez d'appeler votre servlet en utilisant l'URL suivante
http://localhost:8080/com.filecounter/FileCounter
De plus, chaque projet Web a un fichier web.xml que vous pouvez trouver dans votre projet sous WebContent\WEB-INF
.
Il vaut mieux y configurer vos servlets en utilisant servlet-name
servlet-class
et url-mapping
. Cela pourrait ressembler à ça:
<servlet>
<description></description>
<display-name>File counter - My first servlet</display-name>
<servlet-name>file_counter</servlet-name>
<servlet-class>com.filecounter.FileCounter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>file_counter</servlet-name>
<url-pattern>/FileFounter</url-pattern>
</servlet-mapping>
Dans le projet Web dynamique Eclipse, le nom de contexte par défaut est identique à celui de votre projet.
http://localhost:8080/<your-context-name>/FileCounter
va travailler aussi.
En ce qui concerne la question initiale posée dans le titre ...
Sudo apt-get install libtcnative-1
ou si vous êtes sur RHEL Linux yum install Tomcat-native
La documentation indique que vous avez besoin http://Tomcat.Apache.org/native-doc/
Sudo apt-get install libapr1.0-dev libssl-dev
yum install apr-devel openssl-devel