免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1128 | 回复: 0
打印 上一主题 下一主题

axis,webservice初级指南(转载) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-03 15:08 |只看该作者 |倒序浏览

由于WEBSERVICE创建步骤有些复杂,帮创建一个简单的webservice例子,来帮助记忆这些步骤!
1,新建一个WEB工程:axistest.并引入axis相关的JAR包,(发现如果仅仅是这样做,会出错,建议到AXIX的LIB目录把所有的JAR包COPY到工程的LIB下,这时webservice会出现空瓶子的图标.OK),再将axis webapps\axis\WEB-INF目录下的WEB.XML文件COPY到相应工程的WEB-INF目录下.
2,在工程中新建一个包test.server,建一个Hello.java程序:代码如下
package test.server;
public class Hello
{
public String sayHello(String arg)
{
  return "你好!"+arg;
}
}
然后打开TOMCAT,部署工程
3,新建一个deploy.wsdd文件放在工程的web-inf目录下,文件内容如下:

  
   
   
  

建好后,打开DOS命令窗口,转到相应的web-inf目录,输入如下命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -
lhttp://localhost:8080/axis/servlet/AxisServlet deploy.wsdd 若命令执行成功,会在TOMCAT的相应工程的WEB-INF目录下生成server-config.wsdd文件.然后打开IE浏览器,输入
http://localhost:8080/axistest/services
后,会出现三个链接,点击最下面的那个链接.可以看到Hello.java的WSDL文件
4.建立一个.BAT文件,文件内容如下:
  set Axis_Lib=H:\hp\webservices\axis-bin-1.4.zip\axis-bin-1_4\axis-1_4\webapps\axis\WEB-INF\lib
  set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
  set Output_Path=H:\hp\project\axistest\src
  set Package=test.client
  %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package%  
http://localhost:8080/axis/services/Hello?wsdl
  同样打开DOS命令窗口,把BAT文件拖入窗口中,回车.会在H:\hp\project\axistest\src\test\client生成四个JAVA文件
  分别如下Hello_PortType.java,HelloService.java,HelloServiceLocator.java,HelloSoapBindingStub.java
5测试:在test.client包下建一个Main.java类:代码如下
package test.client;
public class Main
{
public static void main(String[] args)throws Exception
{
  HelloService service=new HelloServiceLocator();
  Hello_PortType hello=service.getHello();
  System.out.println(hello.sayHello("hp"));
}
}
先启动TOMAT,再运行,会打印出
你好!hp
也可以用这样的方式调用Webservice,以下内容是转至别人的BLOG:http://blog.csdn.net/ronghao100/archive/2005/06/08/390530.aspx
HelloClient.java
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class HelloClient
{
   public static void main(String [] args) throws Exception {
       String endpoint = "
http://localhost
:" +"8080"+ "/axis/services/HelloWorld";//注意!差别仅仅在这里!!
       Service  service = new Service();
       Call     call    = (Call) service.createCall();
       call.setTargetEndpointAddress( new java.net.URL(endpoint) );
        call.setOperationName("sayHello"  );
         String res = (String) call.invoke( new Object[] {} );
                         System.out.println( res );
   }
}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/36006/showart_394263.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP