论坛首页 Java企业应用论坛

关于java webservice 技术的总结

浏览 61390 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-29  

由于在新的项目中要用到webservice,终于花了两天时间研究了一下,呵呵,

感谢javaeye,上面有位兄弟专门发布了axis的专题文章,写得非常的好,也很仔细,让我受益非浅

其实使用axis可以将任何已经有的java类提供为可供调用的webservice接口,而且非常

呵呵,不多说了,直接说步骤吧,希望对学习axis的兄弟有帮助,以最快捷的方式学习应用 axis

(这里我只用了stubs方式)

1-  环境搭建和测试

     将 TOMCAT 和JDK配置好,然后下载apache上的axis1.4 这里有两个版本axis1.4和axis2,我们使用axis1.4

     http://www.ip97.com/apache.org/ws/axis/1_4/axis-bin-1_4.zip

     解压后将 webapps/axis 这个目录复制到 %tomcathome%/webapps/ 下

     然后启动tomcat, 打开URL: http://localhost:8080/axis/    

     配置成功后将有如下信息,打开 validataion 然后,页面上的信息会告诉你已经有的包和还要差的包,然后根据提示将必须的包下载全.复制到 %tomcathome%/webapps/axis/WEB-INF/lib/目录下

     重起tomat ,直到必须的包都装齐.

2-  创建一个服务类

      我使用的ECLIPSE,当然其实在eclipse下并没有用axis的开发插件,只是用来写代码而已

      创建一个普通的web工程

      将 %tomcathome%/webapps/axis/WEB-INF/web.xml 文件复制到工程中 WEB-INF/下,替换原来的

     将 %tomcathome%/webapps/axis/WEB-INF/lib 下的jar包复制到工程下 WEB-INF/lib 下, 要包括 activation.jar 包

      编写如下文件代码

      src/study/TestHello.java   内容如下:

java 代码
  1. public class TestHello {   
  2.   
  3.  /**  
  4.   * 测试  
  5.   * @param name  
  6.   * @return  
  7.   */  
  8.  public String getName(String name){   
  9.     
  10.   return "Hello  "+name;   
  11.      
  12.  }   
  13.     
  14. }   

TestClient.java 文件

java 代码
  1. public class TestClient {   
  2.        
  3.     public static void main(String[] args) throws Exception {   
  4.   
  5.         // 指出service所在URL    
  6.   
  7.         String endpoint = "http://localhost:8080/虚拟路径/services/TestHello";   
  8.   
  9.         // 创建一个服务(service)调用(call)    
  10.   
  11.         Service service = new Service();   
  12.   
  13.         Call call = (Call) service.createCall();// 通过service创建call对象    
  14.   
  15.         // 设置service所在URL    
  16.   
  17.         call.setTargetEndpointAddress(new java.net.URL(endpoint));   
  18.   
  19.         // 方法名(processService)与MyService.java方法名保持一致    
  20.   
  21.         call.setOperationName("getName");   
  22.   
  23.         // Object 数组封装了参数,参数为"This is Test!",调用processService(String arg)    
  24.   
  25.         String ret = (String) call.invoke(new Object[] { "你好" });   
  26.   
  27.         System.out.println(ret);   
  28.   
  29.     }   
  30.        
  31. }  

 编写deploy.xml 文件

xml 代码
  1. <!---->xml version="1.0" encoding="GB18030"?>  
  2. <deployment xmlns="http://xml.apache.org/axis/wsdd/"  
  3.     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  4.     <service name="TestHello" provider="java:RPC">  
  5.         <parameter name="className" value="study.TestHello" />  
  6.         <parameter name="allowedMethods" value="*" />  
  7.     service>  
  8. deployment>  

编写一个命令行的 axis发布脚本 r_make_server.bat

 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/toms/servlet/AxisServlet deploy.wsdd

目录结构是这样的

/工程1---src/study/TestHello.java
            ---src/study/TestClient.java
            ---webroot/WEB-INF/class/study/TestHello.class
            ---webroot/WEB-INF/lib/所有的axis下的lib下的包 + 下载的必须的jar包
            ---webroot/WEB-INF/r_make_server.bat
            ---webroot/WEB-INF/web.xml
            ---webroot/WEB-INF/deploy.xml

3-  直接在MyEclipse 中以应用程序的方式运行 TestClient.java

 

  • 描述: axis
  • 大小: 42.4 KB
   发表时间:2007-04-29  
呵呵,怎么改了内容后保存不起啊??郁闷了
是不是文章内容太长了..
我是第一次发贴呢
0 请登录后投票
   发表时间:2007-05-25  
你这个是不是哪里写错了啊??
0 请登录后投票
   发表时间:2007-05-25  
总结在哪里?
只有axis?
0 请登录后投票
   发表时间:2007-06-14  
这个blog让我很失望啊,修改代码总是不成功,提交不上去
0 请登录后投票
   发表时间:2007-07-17  
这个冒什么实际应用价值啊
3 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics