/usr/java/packages/lib/amd64,基于APR的Apache Tomcat Native库在java.library.path中找不到

I'm newly at server development and have been started from easy tutorial by

Lars Vogel.

Servlet and JSP development with Eclipse WTP.

Step by step accord this tutorial:

installed Eclipse Java EE Kepler;

installed tomcat 7 on Ubuntu 12.04 - http://localhost:8080/ shows correct tomcat page;

Setting up tomcat runtime environments into eclipse;

added tomcat server to eclipse;

create DAO;

created the Servlet;

run =>

And here I caught next prompt:

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

Here is content of tomcat/lib folder:

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

Update:

Update2:

Here is content of 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();

}

}

}

And here Servlet code:

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();

}

}

}

I haven't had web.xml yet.

How to solve this trouble?

解决方案

not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

The native lib is expected in one of the following locations

/usr/java/packages/lib/amd64

/usr/lib64

/lib64

/lib

/usr/lib

and not in

tomcat/lib

The files in tomcat/lib are all jar file and are added by tomcat to the classpath so that they are available to your application.

The native lib is needed by tomcat to perform better on the platform it is installed on and thus cannot be a jar, for linux it could be a .so file, for windows it could be a .dll file.

Just download the native library for your platform and place it in the one of the locations tomcat is expecting it to be.

Note that you are not required to have this lib for development/test purposes. Tomcat runs just fine without it.

org.apache.catalina.startup.Catalina start INFO: Server startup in 2882 ms

EDIT

The output you are getting is very normal, it's just some logging outputs from tomcat, the line right above indicates that the server correctly started and is ready for operating.

If you are troubling with running your servlet then after the run on sever command eclipse opens a browser window (embeded (default) or external, depends on your config). If nothing shows on the browser, then check the url bar of the browser to see whether your servlet was requested or not.

It should be something like that

http://localhost:8080//

EDIT 2

Try to call your servlet using the following url

http://localhost:8080/com.filecounter/FileCounter

Also each web project has a web.xml, you can find it in your project under WebContent\WEB-INF.

It is better to configure your servlets there using servlet-name servlet-class and url-mapping. It could look like that:

File counter - My first servlet

file_counter

com.filecounter.FileCounter

file_counter

/FileFounter

In eclipse dynamic web project the default context name is the same as your project name.

http://localhost:8080//FileCounter

will work too.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值