[转载]汤姆(Tom)起名cat 6.0 安装配置

[转自:http://blog.pfan.cn/suneveryday/34162.html]

 

第一步:下充斥j2sdk和tomcat:到sun官方站点
    最新的jdk为1.6.04,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上
亚步:安装及配备你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置以路径进行安装即可。
1.安装j2sdk将来,需要配备一下环境变量,在自我的微机->属性->高级->环境变量->系统变量中加上以下环境变量(假定你的j2sdk安装于c:\j2sdk1.4.2): 
JAVA_HOME=c:\j2sdk1.4.2 
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定非克少,因为其代表时路线) 
path=%JAVA_HOME%\bin 

1.D-BUS 的里工作办法

压倒元白的D-BUS设置以由八只总线构成。将生出一个持久的系统总线(system bus),它当引时虽会启动。这么些总线由操作系统和后台进程使,安全性至极好,以使任意的应用程序不可知骗系统事件。还拿发众多对话总线(session buses),这多少个总线当用户登录后开行,属于分外用户个人。它是用户之应用程序用来通信的一个会话总线。若是一个应用程序需要接受来自系统总线的消息,可以直接连接到系统总线
—— 不了,它可以发送的信息将凡受限的。只有Linux内核、Linux桌面环境和权杖较高之主次才会向系统总线写副音讯,以此保障系统安全性,避免爆发恶心进程假冒Linux发送信息。 

若果应用程序连接到了一个总线,它们就得经过添加匹配器(matchers)来声称其要接受哪类音信。匹配器为可因接口、对象路径和方举办收的音信指定同组规则。这样即使令应用程序可以集中精力去处理它们想处理的始末,以促成音讯之高速路由,并维持总线上音讯之意料数量,以使不会晤因为这一个音信导致有应用程序的习性降低并转移得可怜缓慢。

 接着可以写一个简单易行的java程序来测试J2SDK是否已安装成功:

1.1对象

精神上,D-BUS是一个对准顶(peer-to-peer)的说道 ——
每个音信还生一个自和一个目标。这多少个地点为指定为对象路径。概念上,所有应用
D-BUS 的应用程序都囊括同样组对象,信息发送到或发送自某一个靶,这么些目的由对象路径来唯一标识。

每个对象还好协理一个要么多只接口(interfaces)。那些接口看起好像于 Java 中 的接口或者 C++ 中之纯的虚类(pure virtual classes)。一个接口就是大抵单办法与信号的联谊。dbus使用简单的命名空间字符串来表示接口,如org.freedesktop.Introspectable。

public class Test{ public static void main(String args[]){ System.out.println("This is a test program."); } }

1.2消息

于 D-BUS 中生四种档次的新闻:

      1.方调用(method
call)
在指标上举办一个术

      2.智再次回到(method
reply)重回方法执行之结果

      3.左(error)调用方法有的怪

      4.信号(signal)通告指定的信号暴发了,可以设想变为“事件”。

设若实践 D-BUS 对象的道,您要向目的发送一个”methodcall”信息。它用做到有甩卖并返一个”methodReply”音讯仍旧”error”信息。信号的不同之处在于她不归外内容:既没有“methodReply”音讯,也远非 任何项目的”error”音信。

音信呢堪爆发自由的参数。参数是强类型的,类型的限制是自中央的非派生类型(布尔(booleans)、 字节(bytes)、整型(integers))到高层次数据结构(字符串(strings)、数组( arrays)和字典(dictionaries))。

将方的这段先后保存也文件称吧Test.java的文书。 
然后打开命令提醒符窗口,cd到你的Test.java所于目录,然后键入下边的命  
javac Test.java 
java Test  
这时而见到打印出This is a test program.的语表明安装成功了,倘诺没打印出顿时句话,你用细致检查一下你的配备情状。 

2.D-Bus low-level API的使用

2.装置汤姆cat后,在自己的电脑->属性->高级->环境变量->系统变量中加上以下环境变量(假定你的tomcat安装于c:\tomcat): 
CATALINA_HOME:c:\tomcat
CATALINA_BASE:c:\tomcat
TOMCAT_HOME: C:\Tomcat
接下来修改环境变量中的classpath,把tomat安装目录下之common\lib下之servlet.jar追加交classpath中错过,修改后的classpath如下: 
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar; 
接着能够启动tomcat,在IE中访问http://localhost:8080,倘若看到tomcat的欢迎页面的语句表达安装成功了。 
老三步:建立协调之jsp app目录 
1.到Tomcat的设置目录的webapps目录,可以看看ROOT,examples, tomcat-docs之类Tomcat自带的之目; 
2.于webapps目录下新建一个目,起名叫myapp; 
3.myapp下新建一个目WEB-INF,注意,目录名称是别轻重缓急写的; 
4.WEB-INF产新建一个文本web.xml,内容如下:

2.1树服务之流程

树立一个dbus连接之后 — dbus_bus_get(),为者连续注册监视函数–dbus_connection_set_watch_functions(),为那个连续注册超时函数–dbus_connection_set_timeout_functions(),为之连续注册信息处理函数–dbus_connection_add_filter(),为这个dbus连接(DbusConnection)起名 —

<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>My Web Application</display-name> <description> A application for test. </description> </web-app>

dbus_bus_request_name(),那些名字将汇合成大家在持续开展长途调用的早晚的劳务名,为是连续上加匹配器dbus_bus_add_match(),将对象路径注册到总线,然后我们进入文件讲述符读写就绪状态监听循环。在循环中,我们由总线上取出音讯

5.以myapp下新建一个测试的jsp页面,文件称也index.jsp,文件内容如下: 

dbus_watch_handle(),然后经过dbus_connection_dispatch()分发给前方通过dbus_connection_add_filter()注册之信息处理函数,并经比对音信中之点子接口名与法名

 

dbus_message_is_method_call(),假诺同,那么我们越反到相应的拍卖面临错过。在对应的处理中,大家相会起信息备受取出远程调用的参数。并且创立由回传结果的通路

reply_to_method_call()。回传动作本身一样于同一回等不欲拭目以待结果的中远距离调用。

<html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html>

2.2殡葬信号的流水线:

6.重启Tomcat 
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到眼前工夫的讲话表明就是打响了。

树一个dbus连接之后,为是dbus连接起名,建立一个发送信号的通道,注意,在起通道的函数中,需要我们填写该信号的接口名和信号名

季步:建立协调的Servlet:
描绘副你的率先单Servlet:
于你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java

dbus_message_new_signal()。然后大家将信号对应之连带参数压进

dbus_message_iter_init_append();
dbus_message_iter_append_basic()。然后便得启动发送了 — dbus_connection_send();
dbus_connection_flush。

package test;

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet  {    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException   {    response.setContentType("text/html");     PrintWriter out = response.getWriter();    out.println("<html><head><title>");    out.println("This is my first Servlet");    out.println("</title></head><body>");    out.println("<h1>Hello,World!</h1>");    out.println("</body></html>");      }   }

2.3 展开相同赖远程调用的流水线:

建好dbus连接之后,为这dbus连接命名,申请一个长途调用通道 —
dbus_message_new_method_call(),注意,在申请远程调用通道的时刻,需要填服务器名,这次调用的接口名,和此次调整用名(方法名)。压入本次调用的参数 — dbus_message_iter_init_append();

下一场依然用javac
HelloWorld.java来编译那多少个文件,要是出现无法import javax.servl
et.*
   那么即使是该将C:\Tomcat\common\lib里面的servlet-api.jar文件拷贝到C:\JDK\jre\lib\ext中,再次编译,就从未有过问题了!
  
然后在汤姆cat目录里面的C:\Tomcat\webapps\myapp里面照如下的公文结构:
   myapp\index.jsp
   myapp\WEB-INF\classes\test\HelloWorld.class(把上边生成的HelloWorld.class文件在这
里面)
 然后以浏览器中输入http://localhost:8080/myapp/HelloWorld,于是Server众望所归的回报错了:Error
404–Not Found
 怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\myapp\WEB-INF这么些目录下边的web.xml文件举行挂号,
就此EditPlus打开这web.xml文件,
以<web-app></web-app>添加脚就段先后:

dbus_message_iter_append_basic(),实际上是报名了一个篇地方,我们尽管是把我们实在要传的参数,往这首地址间送(送完后一般还汇合咬定是否内存越界了)。然后就是开行发送调用并释放发送有关的音结构

dbus_connection_send_with_reply()。那么些启动函数中包含一个句柄。我们立即会阻塞等待那词柄给大家带来回总线上回传的信息。当此词柄回传信息后,我们由消息结构面临分别有参数。用dbus提供的函数提取参数的品类及参数 — dbus_message_iter_init();
dbus_message_iter_next(); dbus_message_iter_get_arg_type();
dbus_message_iter_get_basic()。也就达成了俺们举行本次远程调用的指标了。

<servlet>    <servlet-name>HelloWorld</servlet-name>    <servlet-class>test.HelloWorld</servlet-class> </servlet> <servlet-mapping>     <servlet-name>HelloWorld</servlet-name>    <url-pattern>/HelloWorld</url-pattern>   </servlet-mapping>

2.4信号接收流程:

创制一个dbus连接之后,为这dbus连接起名,为大家就要举行的音讯循环添加匹配原则(就是通过信号名和信号接口名来展开匹配控制的) — dbus_bus_add_match()。大家进去待循环后,只需要针对信号名,信号接口名展开判定虽然足以分别处理各样信号了。在逐一处理分支上。我们得分开有消息被的参数。对参数类型举办判定与另的拍卖。

 

 

 

 

 为啥呢?
 因为 这样的布局
   <servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>test.HelloWorld</servlet-class>//类的途径
   </servlet>
意味着指定包含的servlet类.
假诺以下的构造
   <servlet-mapping>
     <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
   </servlet-mapping>
 表示指定HelloServlet应当映射到啊一样种植URL模式。

3.D-Bus low-level public API的动领会

每当改web.xml完毕了后,重新起动Server,然后还输入http://localhost:8080/myapp/HelloWorld,,那么高大一个Hello,World!等
着你呢,恭喜你!

3.1关于DBusConnection的理解

DBusConnection意味着着和总线或者另外一个使用之连日,通过她好来来发送和收取音讯,通过函数dbus_bus_get()函数,来连接到一个已发表称的总线,进而拿到一个DBusConnection连接。DBusConnection可看做是一个护卫着接过及发送的一定量独音信队列,它依照SOCKET进行数据的传递。

DBusConnection上通过DBusWatchDBusTimeout零星只目的来控制啥时候举办消息接收、信息发送和音讯分发的处理操作,通过dbus_connection_dispatch()函数,来拍卖接收音信队列最顶端的一个音,dbus_connection_dispatch()函数内部会实施业已登记了之信息处理函数(在resourcemanager程序中凡msg_filter()函数)。删除接收新闻队列中这处理了之音讯,然后回。

dbus_connection_get_dispatch_status()函数指示是否队列中得拭目以待处理的音。

为达到对消息队列的异步处理,大家得少单函数dbus_connection_set_watch_functions(),
dbus_connection_set_timeout_functions() 来整合DBusConnection暨我们函数自己的主循环中去(在resourcemanger程序中是bus_watch_daemon)。假使非需异步处理吧,可以忽略对象DBusWatch,
DBusTimeout同函数dbus_connection_dispatch().然后就需用函数 dbus_connection_read_write_dispatch().

当使用函数dbus_connection_send()出殡信息的当儿,音讯让填补加至DBusConnection的发送队列中错过,假使举行dbus_connection_flush()函数,那么进程将受死,直到发送队列中的信被通过SOCKET完全传送出来;假若非执该函数,则会当下次主循环执行dbus_watch_handle的时让通过SOCKET传送出来。

当连接于断开的时段,会以 interface
DBUS_INTERFACE_LOCAL,
path
DBUS_PATH_LOCAL齐收取至“Disconnected”信号,在连接为断开从前,必须保持对DBusConnection的引用。

第五步:建立自己java Bean

3.2 关于DBusMessage的理解

消息DBusMessage通过DBusConnection进展发送和吸纳。

信具有音讯头,音信头的特性通过函数dbus_message_get_type()来得到,音信包含的信息头,提醒了音信的来源 信息的目标地点法调用或信号调用
以及任何信息,通过函数dbus_message_get_member()来收获。也堪经更便捷的办法来抱,包括

dbus_message_is_method_call(),判断是否是道调用 

dbus_message_is_signal(),判断是否是信号新闻

dbus_message_is_error()认清是否是差信息 

信息带领的参数,通过dbus_message_get_signature()来收获签名,对于简易的参数经dbus_message_get_args()来博,对于复杂的结构体参数,通过DBusMessageIter来获得。

  1. 于您新建的Application myapp/WEB-INF/classes/test目录下新建TestBean.java

 

 

package test;public class TestBean{    private String name =null;    public TestBean(String nameInit){        this.name = nameInit;    }    public void setName(String newName){        this.name=newName;    }    public String getName(){        return this.name;    }}

接下来还用javac
TestBean.java来编译这一个文件。

2.然继当您新建的应用程序目录myapp下新建一个新的jsp文件:testBean.jsp

<%@ page import="test.TestBean" %><html><head><title>Test Bean</title></head><body><center><%   TestBean testBean = new TestBean("Http://yexin218.cublog.cn"); %>Java Bean Test:    The author's blog address is<%=testBean.getName()%></center></body></html>

吓了,确定各样文件之地点:

myapp\index.jspmyapp\testBean.jspmyapp\WEB-INF\web.xmlmyapp\WEB-INF\classes\test\HelloWorld.classmyapp\WEB-INF\classes\test\TestBean.class

3.还开汤姆cat如若需要的话,在浏览器输入:http://localhost:8080/myapp/testBean.jsp 幸运的话语就相会看出:

Java Bean Test:
The author’s blog address isHttp://yexin218.cublog.cn

这样即使形成了全Tomcat下之jsp、servlet和javabean的布局。

第六步:配置虚拟目录

打开 Tomcat6.0\conf\server.xml 文件,在
<Host> 和 </Host> 之间进入

 

<Context path="/myapp" docBase="D:\myapp" debug="0" reloadable="true" crossContext="true" />

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图