当前位置: 代码迷 >> Web前端 >> 手把手教你用axis创造自己的webservice(五)
  详细解决方案

手把手教你用axis创造自己的webservice(五)

热度:272   发布时间:2012-11-07 09:56:10.0
手把手教你用axis创建自己的webservice(五)

?好了现在我们将webservice的实现代码发布到tomcataxis web应用中。如将你的代码拷贝到axis/WEB-INF/classes<o:p></o:p>

进入你的deploy.wsdd所在目录。<o:p></o:p>

cd C:\tomcat5\webapps\axis\WEB-INF\classes\com\yy\ws<o:p></o:p>

输入如下命令:<o:p></o:p>

C:\tomcat5\webapps\axis\WEB-INF\classes\com\yy\ws>?? java???? org.apache.axis.client.AdminClient? deploy.wsdd<o:p></o:p>

AdminClient? -一个axis发布工具,会自动地将你的webservice发布到WEB-INF下的server-config.wsdd文件中。如果显示:<o:p></o:p>

Processing file deploy.wsdd
<Admin>Done processing</Admin><o:p></o:p>

则表示发布成功!<o:p></o:p>

?????? 好了,现在我们已经完成了创建和发布过程,接下来我们来进行最后一步工作――调用我们写的webservice!<o:p></o:p>

????? <o:p></o:p>

java 代码<o:p></o:p>

1.????????? package?com.yy.ws.test; ??<o:p></o:p>

2.????????? ??<o:p></o:p>

3.????????? import?java.net.MalformedURLException; ??<o:p></o:p>

4.????????? import?java.rmi.RemoteException; ??<o:p></o:p>

5.????????? ??<o:p></o:p>

6.????????? import?javax.xml.rpc.ServiceException; ??<o:p></o:p>

7.????????? ??<o:p></o:p>

8.????????? import?com.yy.ws.ClientRequest; ??<o:p></o:p>

9.????????? import?com.yy.ws.MobileBoss; ??<o:p></o:p>

10.?????? import?com.yy.ws.MobileBossService; ??<o:p></o:p>

11.?????? import?com.yy.ws.MobileBossServiceLocator; ??<o:p></o:p>

12.?????? import?com.yy.ws.ServerResponse; ??<o:p></o:p>

13.?????? ??<o:p></o:p>

14.?????? public?class?Test?{ ??<o:p></o:p>

15.?????? ????public?static?void?main(String?args[])?throws?ServiceException,?MalformedURLException,?RemoteException{ ??<o:p></o:p>

16.?????? ????????ClientRequest?req?=?new?ClientRequest(); ??<o:p></o:p>

17.?????? ????????req.setAmount(1000); ??<o:p></o:p>

18.?????? ????????req.setOpType("charge"); ??<o:p></o:p>

19.?????? ????????req.setPhoneNumber("13912345678"); ??<o:p></o:p>

20.?????? ????????MobileBossService?sl?=?new?MobileBossServiceLocator(); ??<o:p></o:p>

21.?????? ????????//URL?url?=?new?URL("http://localhost:8080/axis/services/MobileBoss"); ??<o:p></o:p>

22.?????? ????????//s.getMobileBoss(url); ??<o:p></o:p>

23.?????? ????????MobileBoss?mb?=?sl.getMobileBoss();//default?port ??<o:p></o:p>

24.?????? ????????ServerResponse?resp?=?mb.charge(req); ??<o:p></o:p>

25.?????? ????????System.out.println("client?result:"+resp.getResultCode()+"\nclient?message:"+resp.getMessage()); ??<o:p></o:p>

26.?????? ????} ??<o:p></o:p>

27.?????? } ??<o:p></o:p>

?结果如下:<o:p></o:p>

服务器端显示:<o:p></o:p>

13912345678|charge|1000
13912345678is charged successfully!<o:p></o:p>

客户端显示:<o:p></o:p>

client result:8888<o:p></o:p>

client message:13912345678|charge|1000<o:p></o:p>

????? 服务器段成功返回消息,大功告成!不是很难吧?!这篇文章的所有代码我都测试过,全部可以直接使用。希望能够对大家有所帮助。<o:p></o:p>

1 楼 VerRan 2007-03-27  
用MyEclipse5.0是不是可以简化开发啊!我看他里面代有关于webservice的开发,不过不会用没有用过!呵呵..
2 楼 hbcui1984 2007-04-20  
引用
用MyEclipse5.0是不是可以简化开发啊!我看他里面代有关于webservice的开发,不过不会用没有用过!呵呵..

楼主为什么不在Myeclipse下开发呢?为什么还要配classpath之类的,多麻烦
3 楼 fragility 2007-04-21  
作者写的很明白。我只是接触一些ws的概念,还从没有实践过,不过看完这几篇文章,已经可以自己来做一个简单的例子了。
至于用什么工具开发,不值一提。入门的例子最好用最简单的工具。
4 楼 cqpxm 2007-04-22  
MobileBossServiceLocator()

是用来做什么的啊!
5 楼 aone 2007-06-07  
我在执行java     org.apache.axis.client.AdminClient  deploy.wsdd
的时候发生错误:

Exception: AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (404)/axis/services/AdminService
faultActor:
faultNode:
faultDetail:
        {}:return code:  404


可以看到是没有找到:/axis/services/AdminService
但是我没有在deploy.wsdd里找到哪里有设置/axis/services/AdminService
LZ或者路过的高手给分析一下发生这种错误都可能是哪些原因,谢谢.
6 楼 aone 2007-06-07  
自问自答:
java org.apache.axis.client.AdminClient -lhttp://地址:端口/context模块/services/AdminService deploy.wsdd
7 楼 aone 2007-06-07  
我发现axis1.4和jfreechart0.9.11在同一个工程的话,启动web服务时会报错,不知道有没有人碰到过同样的问题,我的解决办法是把jfreechart里的gnujaxp.jar删掉.
8 楼 e3002 2007-06-12  
楼主的连载很好,对新手很有用,我更希望看到楼主在实际使用过程中遇到的问题及解决方法与大家一起分享一下,这样我觉得会更好
9 楼 wisdom3099 2007-07-12  
在你的帮助下第一次尝试axis例子已经发布成功:),axis的官方文档其实也非常详细。使用axis的自带工具要注意一下classpath。
 

   


10 楼 hxirui 2007-07-25  
不知道axis如何返回复杂对象:
比如我要返回一个组织类,组织类中有个List用来存放所有的子组织,
类似:

public class OrgBean{   
  private String orgName;   
  ...   
  private List subOrgs;   
  public void setSubOrgs(List par){   
       subOrgs = par;   
  }   
  public List getSubOrgs(){   
     return subOrgs;   
  }   
}   


services类为:

package com.admin.webservices;      
     
public class AdminOrgService {     
 //简单说明    
    public OrgBean getOrgBean() {      
        return new OrgBean();      
    }      
}      


不知道是否有人遇到过这种情况
不好意思这个问题我在 http://www.iteye.com/topic/104696  也提问过因为很着急所以在此也向大家请教,不过估计看这个主题的都是新手吧.
11 楼 irvine007 2007-07-26  
刚刚接触webservice,用axis2在tomcat上部署了一个ws服务。
在用axis2写客户端的时候发现axis2跟axis差异还比较大啊。
大家一般使用axis2和axis中的哪一个啊。
12 楼 jia95812 2007-08-13  
啊,test放在任何位置都可以吗?什么是服务器输入和客户端输出,什么意思啊?
13 楼 shorthair 2007-09-03  
为什么我的客户端和服务端老是连不上,总是catch java.rmi.RemoteException

服务端应该发步成功了

我用的是JDK1.6和axis1.4,apache-tomcat6.0.14

可能是哪方面的原因呢?

谢谢
  相关解决方案