转自:
http://staven2009.blog.163.com/blog/static/111437396201142572218174/
一个简单的Web登录项目
本学期,WebServices的一次实验,个人经验总结,一家之言,请勿拍砖!
① 实验环境的搭建
参照本人编写的文档,J2EE搭建WebServices开发环境.doc
下载地址:http://u.115.com/file/t7a2d61f55
② 新建JavaProject
打开Eclipse开发工具,新建一个Java Project
File —> New —>Java Project
并在src/目录下创建包,例如com.staven.login,同时创建一个新的class,命名为loginServer.java
参考代码如下
package com.staven.login;
public class loginServer {
public boolean access(String name,String code){
String NAME = “staven”;
String CODE = “123456″;
return (name.equals(NAME)&&code.equals(CODE));
}
}
代码编写完成后要及时保存,这样就编译好了!
③ 利用loginServer导出Axis2的服务文件
将完成的服务器端的代码导出为Axis2的服务文件,loginServer.aar文件,导出到tomcat安装目录下的/webapps/axis2/WEB_INF/services
具体方法见下图
File —> New —> Other
选择Axis2 Services Archiver
找到login项目的class文件路径
下一步,勾选skip WSDL
这里我们没有外部的lib,所以什么都不要动。
如图,勾选上Generate the service xml automatically
这个地方,写上服务的名称,class name,注意要把包都写上,一直到loginServer.java文件名称,写好后,点击Load按钮,然后你就能看到相关的方法了。我们把Search declared methods only 勾选上,选择我们认为有效的那个method.
这一步,输出aar文件的位置,我们把它导出到tomcat安装目录下的/webapps/axis2/WEB_INF/services目录中。
名称自定义,最后点击Finish.如果成功导出,则显示如下消息
现在你可以打开tomcat,并且在浏览器地址栏中输入http://localhost:8080/axis2
看到上图的欢迎界面,然后进入Services链接,这里你将看到loginServer服务已经发布成功了!
点击进入WSDL描述文档
这里我们要把wsdl描述文档的地址复制下,下面会用到的!
④ 创建客户端,调用已经发布的loginServer服务.
打开Eclipse基础开发环境,File —> New —>Other
选择Axis2 Code Generator
然后进入如下界面
我们选择Generator Java source code from a WSDL file
这个地方,就可以把刚才浏览器地址栏复制的地址粘贴上去了,就是loginServer服务的WSDL文档的地址。
这里选择默认值就OK了!
选择导出文件到,java Project目录下
点击Finish
如果看到下面的消息,恭喜你,这一步成功了!
这时,刷新Eclipse左侧目录树中的文件,你会发现多了好几个文件。还有好几个小红叉!悲剧了,郁闷吧!
不用担心,主要是缺少一些必需的lib
我们导入进入就OK了!
在项目上右键选择,Properties —>Java Build Path —>Libraries —>
Add External JARs
选择到tomcat安装目录下的/webapps/axis2/WEB_INF/lib,把这个目录下的jar文件全部导入,Ctrl+A,全选!
确定导入后,这是刷新目录树,发现还有个小红叉,这回我们要特殊对待它了!
打开文件,把错误行,这些内容删掉
implements LoginServer
保存一下,小红叉就没有了!
下一步,我们需要编写个客户端程序段,来调用先前发布到loginServer服务
在项目包中新建一个class文件,命名为loginClient.java
代码如下
package com.staven.login;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class loginClient {
public static void main(String[] args){
try{
System.out.println(“用户名:”);
InputStreamReader isname = new InputStreamReader(System.in);
BufferedReader brname = new BufferedReader(isname);
String name = brname.readLine();
System.out.println(“密码:”);
InputStreamReader iscode = new InputStreamReader(System.in);
BufferedReader brcode = new BufferedReader(iscode);
String code = brcode.readLine();
LoginServerStub stub = new LoginServerStub(“http://localhost:8080/axis2/services/loginServer”);
Access access = new Access();
access.setName(name);
access.setCode(code);
AccessResponse res = stub.access(access);
if(res.get_return() == true)
System.out.println(“认证通过,恭喜你成功登入!”);
else System.out.println(“用户名或密码有误,登录失败!”);
}catch(Exception el){
System.out.println(“远程服务器端无响应,请重试!”);
}
}
}
下面是运行的界面:
Log4j警告信息不用管他,主要是要配置log4j.这里就不扯了!
如何去除log4j产生的警告信息,请自行google
终端显示的结果不是很好,感兴趣的朋友可以自己做个GUI
调用服务的方法是完全一样的。
最后,附上本人实现的GUI 截图
好吧,本文档编写完成,
J2EE Axis2 Tomcat WebService实例
一个简单的Web登录项目