用JSP写的一个返回测试数据的服务器

主要是为了日后复习和巩固


版本履历

Edit

2012年12月05日发布. DummyAPI 0.02版

追加功能
  • 增加返回内容编码格式的设定
  • 增加数据文件默认的返回类型为纯文本形式
预定追加功能
  • 正则规则匹配功能的追加
Edit

2012年12月04日发布. DummyAPI 0.01版

版本功能
  • 通过规则的指定,返回相应的数据(xml或者json).
  • 支持online验证
  • 支持http、https两种协议
  • 支持get、post两种请求方式
Edit

配布设置方法(基于DummyAPI 0.02版)

Edit

一、运行环境的配置

访问共享 \\172.23.14.113\smart_framework\dummyapis ,下载共享中的Java运行环境 jdk16u33.zip 包到本地,解压jdk到任意目录。本例以D盘本目录为例。
解压完成之后,配置环境变量JAVA_HOME,步骤如下

  1. 右击我的电脑,选择属性选项
  2. 在属性设置页面,选择详细设置,再选择环境变量
  3. 点击新建选项
  4. 配置环境变量,变量名写:JAVA_HOME,变量值:填写jdk解压的路径地址
Edit

二、服务器Tomcat的配置

  1. 访问共享 \\172.23.14.113\smart_framework\dummyapis ,下载共享中的 apache-tomcat-5.5.36.zip 包到本地,解压zip到任意目录。本例以D盘根目录为例。
  2. 下载共享中的 dummyApiFramework.war 文件,并且将此文件复制到Tomcat目录下 webapps 文件夹中。
  3. 进入Tomcat目录中的bin下,运行 startup.bat 文件,启动完成之后,再将其关闭。这时 webapps 中将生成 dummyApiFramework 文件夹(如下图),这说明dummyApi部署成功。
  • 注:共享中的Tomcat能够成功的应用Https协议的请求,应用其他Tomcat可能无法实现Https的请求,需要其他的手动配置。
Edit

三、工程数据的配置

  1. 进入Tomcat目录中的webapps -> dummyApiFramework -> WEB-INF -> classes下,修改 webConfig.xml 文件。
    <basepath></basepath> 标记中 "D:\FrameworkDev\example\” 的路径,修改为自定义的路径,这个路径地址为导入工程数据的根本目录。
    <retpath></retpath> 标记中 "resources\"可修改为自定义的文件夹,这个文件夹在上一步指定的根本目录下,存放资源用。
     <globalConfigFileName> globalConfig.xml </globalConfigFileName> <!-- 全局配置文件的名字,可自定义。-->
      <retRuleConfigFileName> retRule.xml </retRuleConfigFileName> <!-- 规则文件名,可自定义。-->
    

  2. 进入上一步webConfig.xml中指定的根本路径(如果没有请创建),创建 <globalConfigFileName> 标记中定义的配置文件,
    以下以globalConfig.xml名代替。
    打开globalConfig.xml文件,新加入 <project id="" urlfrom="" to="" charset="" /> 内容,其中id属性值为导入工程的id,urlfrom属性值为导入工程的名字,
    to属性值为导入工程的数据存放地址。
    DummyAPI0.02版 中追加 charset 属性,指定编码格式,此属性不设定,默认编码为UTF-8,可根据实际情况指定编码格式。
  3. 在globalConfig.xml的同级目录中, 创建"id+config.xml"文件,id意思为第二步中project的id值,
    这个文件的命名是id值加"config.xml"来命名,例如:"p001config.xml"。

    创建完成"id+config.xml"文件后,打开进行编辑。
      <online>true</online> <!-- 是否可以利用,值:true/false. -->
      <protocol>http;https</protocol> <!-- 设置网络协议支持类型。 -->
      <requestType>post;get</requestType> <!-- 设置允许的请求类型。-->
    

  4. 在根本目录下,创建并进入第一步 <retpath> 标记中定义的资源文件夹,以下以resources表示。
    在resources下,创建第二步中to属性值指定的目录,如果没有to属性值,则创建urlfrom属性值命名的目录,如下图,左部分。
    目录创建完成之后,将准备好的数据文件放入这个目录。
  5. 在数据文件的同级目录下,创建第一步中 <retRuleConfigFileName> 标记中定义的规则文件,并编辑它。
    编辑内容请参照下图, <rule name="" Return="" type=""> name规则名称,Return数据文件名。
    type为数据格式, DummyAPI0.02版 中此属性未指定默认文件内容以文本格式返回。
    <urlPattern> 匹配请求的url,以此判断需要返回的数据文件。
    <postParams> post类型的请求,且有Parameter参数的情况下才需要配置。
    <param name="param1" value="ed"/> name为Parameter参数名称,value参数值。
  6. 数据文件内容的格式
    xml格式的数据文件

    json格式的数据文件
  7. 请求数据的访问地址的录入格式
    运行Tomcat根目录中bin下startup.bat
    HTTP协议:

    http://localhost:8080/dummyApiFramework/project1/abc
    http://localhost:8080/dummyApiFramework/project1/getfrient/abc
    http://localhost:8080/dummyApiFramework/project1/cde?id=2&code=3
    HTTPS协议:
    https://localhost:8443/dummyApiFramework/project1/abc
    http://localhost:8080/dummyApiFramework/project1/getfrient/abc
    https://localhost:8443/dummyApiFramework/project1/cde?id=2&code=3
Edit

四、log日志的配置

  • 进入Tomcat目录中的webapps -> dummyApiFramework -> WEB-INF -> classes下,修改 log4j2.xml 文件。
    <RollingFile>标记中fileName的值为log文件输出的地址,可根据喜好,自行设置。
     <RollingFile name="rollingFile" fileName="D:/dummyapis.log" filePattern="" append="false">
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS JSP ASP .NET J2AM API接口和返回的版本 目前所有版本的JS JSP ASP .NET J2AM 都是提供源代码的,对于一些脚本语言来说,直接解压缩之后就可以使用了,不需要什么安装步骤。另外一些需要编译的语言,则提供了编译用的 shell 文件(Linux/Unix 下使用)和 bat 文件(Windows 下使用),或者直接提供编译好的二进制库文件。 不过为了让读者能够更清楚如何安装,我们还是对每种语言的安装都做详细的讲解,你可以在安装列表里找到你感兴趣的语言的安装方法。 示例 如果你已经把 JS JSP ASP .NET J2AM 安装好了,那么接下来就让我们开始第一个小程序吧。按照惯例,第一个演示程序几乎总是 HelloWorld,我们也不想打破这个惯例,不过对于 PHPRPC 来说,有服务器端就要有客户端,否则我们就没有什么好演示的啦,所以我们的第一个演示程序实际上是两个,一个是服务器端,另一个是客户端。我们都先用 PHP 语言来好了。 服务器端 view plaincopy to clipboardprint? <?php include ("php/phprpc_server.php"); function HelloWorld() { return 'Hello World!'; } $server = new PHPRPC_Server(); $server->add('HelloWorld'); $server->start(); ?> 客户端 view plaincopy to clipboardprint? <?php include ("php/phprpc_client.php"); $client = new PHPRPC_Client('http://127.0.0.1/server.php'); echo $client->HelloWorld(); ?> 对于服务器端程序,我们应该将它命名为 server.php(这是因为客户端调用时用的是这个名字,而不是 PHPRPC 的什么规定),然后把它放在本地 Web 服务器的根目录下,并保证服务器可以正常运行 PHP 程序,之后在浏览器或命令行下运行客户端程序,你就可以看到结果了。 这两个程序几乎简单到无需解释的地步,所以如果你已经明白它们的意思,那么就可以直接跳过下面的解释,继续看后面的例子。 服务器端第 1 句是将 它的服务器端程序包含到你的程序里,之后的 2 - 4 句是定义一个远程调用的函数,你会发现它与本地函数没有任何区别。第 5 句是创建服务器端对象,第 6 句是添加要发布的方法,这里添加的就是刚刚定义的 HelloWorld 函数,在 PHP 中,添加的发布方法是函数名的字符串表示,在其它语言中可能略有不同。第 7 句是启动服务。 客户端就更简单了,第 1 句是将 它的客户端程序包含到你的程序里。第 2 句是创建客户端对象,其中的参数就是服务器端的地址。第 3 句是对远程方法(函数)的调用,之后通过 echo 将它显示出来。如果顺利的话,执行后你就会看到输出的 Hello World!。 上面的例子是发布的是函数,下面我们来看一下类中的静态方法如何发布: view plaincopy to clipboardprint? <?php include ("php/phprpc_server.php"); class Hello { static function HelloWorld() { return 'Hello World!'; } } $server = new PHPRPC_Server(); $server->add('HelloWorld', 'Hello'); $server->start(); ?> 这个服务器端只要它的名字与发布的地址与上面那个发布函数的例子一样的话,上面的那个客户端就可以得到同样的结果,也就是说,在客户端看来是没有任何区别的。 它并不是只可以在 PHP 中使用,它同样支持其它语言的服务器和客户端,而且还可以无差别的相互调用。 现在我们来看一下如何在 Java 中调用这个 PHP 的服务器方法: view plaincopy to clipboardprint? import org.phprpc.*; interface IHello { public String helloWorld(); } public class HelloWorld { public static void main ( String [] args ) { PHPRPC_Client client = new PHPRPC_Client("http://127.0.0.1/server.php"); IHello clientProxy = (IHello)client.useService(IHello.class); System.out.println(clientProxy.helloWorld()); } } 当我们把这个例子编译之后,在命令行中输入以下命令就可以看到执行结果了: java -classpath .;phprpc_client.jar HelloWorld 这个 Java 的客户端看上去比 PHP 的要稍微复杂一些,不过仍然很好理解。在 Java 客户端中,我们使用了接口来描述远程方法,之后我们通过 useService 方法返回一个远程代理对象,该对象实现了我们定义的接口,之后我们就可以直接调用远程方法 helloWorld 了。如果你比较细心的话,你还会发现我们在 PHP 中定义的方法和在 Java 中定义的接口的名字的大小有点不同,但是仍然可以正常调用。是的,PHPRPC 发布的方法是不区分大小的。所以不论你所使用的语言是否区分大小,都可以按照自己(或语言)的习惯来定义方法名。 在本章的最后,我们再来看一下在 JavaScript 如何调用它的服务。顺便再强调一下,服务器端不止是可以用 PHP 来编,你同样可以使用其它语言(比如 Java,.NET,Ruby,Python 等),这里我们只是以 PHP 为例而已。在这个例子中你还会看到如何使用加密传输。 view plaincopy to clipboardprint? <html> <head> <title>HelloWorld</title> [removed][removed] [removed] var client = new PHPRPC_Client('http://127.0.0.1/server.php', ['HelloWorld']); client.setEncryptMode(2); client.HelloWorld(function (result) { alert(result); }); [removed] </head> <body> </body> </html> 这个 JavaScript 是在网页中运行的,这里建议大家要把 head 和 body 标签都全,即使它们对你来说看上去没有什么用处,但是在有些浏览器中,如果这些标签没有全,或者的不正确,程序就不能正确运行。 在这个例子中,我们会发现在创建 PHPRPC_Client 对象时,除了要服务器地址以外,还要将远程方法的名字作为参数,因为远程方法可能不止一个,所以这个参数是数组类型的。 client.setEncryptMode(2); 这句是设置加密传输,参数 2 表示双向加密,就是参数和结果都加密(只不过这个 HelloWorld 比较特殊,它没有参数)。 接下来就是调用远程方法 HelloWorld 了,我们会发现它跟 PHP 和 Java 客户端的调用不太一样。是的,在 JavaScript 中远程调用都是采用异步方式的,也就是说要获得结果,需要用回调函数,回调函数作为远程方法的最后一个参数,回调函数也有四个参数,这里我们只使用第一个参数,也就是返回结果 result,通过 alert(result); 我们就可以在浏览器中看到最后弹出的 Hello World! 提示框了。 通过上面的例子,我们已经看到在 PHP、Java 和 JavaScript 这三种语言中使用 PHPRPC 都很简单,但因为语言的不同,在法和用法上又有一些差别。不过你不用担心其它的语言跟它们也会有很大的差别,因为在接下来的章节中你很快就会发现其它语言跟这上面三种语言实现的法和用法上的相似或相同之处了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值