浏览 11086 次
锁定老帖子 主题:使用Axis2快速开发web服务
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-14
1.pojo模式,此方法最为简便,但是也有很多的局限性,最为明显的就是不能有package step1:编写pojo对象 public class HelloWorld{ public String sayHello(String name){ return "Hello,"+name; } } 编译成class文件。 step2:在Tomcat目录/webapps/axis2/WEB-INF/下新建pojo文件夹。 step3:将class文件拷贝到pojo文件夹中。 setp4:启动tomcat,在浏览器中输入: http://localhost:8080/axis2/services/HelloWorld/sayHello? param0="ningkun"将会看到,"Hello,ningkun"的消息。 2.如果我们想以pojo的形式发布web服务,并且与package的话,可以使用jar包的形式发 布web服务。 step1:编写java类 AddressService类 package sample; import javax.jws.WebService; @WebService public class AddressService { public Address getAddress(){ Address address = new Address(); address.setStreet("Street"); address.setNumber("Number 15"); return address; } } Address类 package sample; public class Address { private String street; private String number; public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } } step2:修改axis2/WEB-INF/conf/axis2.xml 添加 <deployer extension=".jar" derectory="pojo" class="org.apache .axis2.deployment.POJODeployer"/> step3:将pojo类打包后放到pojo文件夹下。 3.用Serice文件发布web服务。 step1:编写java类,此处我们使用1中的HelloWorld类 step2:编写services.xml <service name="HelloService"> <description> This is a sample Web Service. </description> <parameter name="ServiceClass" locked="false"> HelloWorld </parameter> <operation name="sayHello"> <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> </operation> </service> 注:messageReceiver中的class属性有多种选择, RawXMLINOutMessageReceiver 接受参数,并有返回值 RawXMLINOnlyMessageReceiver 无返回值 4.打包aar文件 项目目录如下 HelloWorld.class META-INF services.xml jar cvf HelloService.aar . step3: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-15
setp4:启动tomcat,在浏览器中输入:
http://localhost:8080/axis2/services/HelloWorld/sayHello? param0="ningkun"将会看到,"Hello,ningkun"的消息。 ===================================================== 請問 一下, webservice可以從以上介上的方法來進行調用嗎? 我試了Axis2 內建的getVersion怎麼都調不出來呢? 在ie輸入: http://localhost:8080/axis2/services/Version?param0="hi" 回應的是HTTP500 內部伺服錯誤 |
|
返回顶楼 | |
发表时间:2008-10-15
经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名"
但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式 |
|
返回顶楼 | |
发表时间:2008-10-15
紧急下潜 写道 经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名" 但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式 目前尚未发现,有待进一步研究。 |
|
返回顶楼 | |
发表时间:2008-10-15
liang1022 写道 setp4:启动tomcat,在浏览器中输入: http://localhost:8080/axis2/services/HelloWorld/sayHello? param0="ningkun"将会看到,"Hello,ningkun"的消息。 ===================================================== 請問 一下, webservice可以從以上介上的方法來進行調用嗎? 我試了Axis2 內建的getVersion怎麼都調不出來呢? 在ie輸入: http://localhost:8080/axis2/services/Version?param0="hi" 回應的是HTTP500 內部伺服錯誤 不是吧,正常情况下是可以得到回应的啊。 |
|
返回顶楼 | |
发表时间:2008-10-15
ningkun 写道 紧急下潜 写道 经我研究axis2的pojo这种方式有问题,在生成的soap消息内,会加上一个特殊属性type="类名" 但是在wsdl定义中是找不到这个属性定义的,有的soap解析会出问题的,这不是标准通用的方式 目前尚未发现,有待进一步研究。 axis2有一个SOAPMonitor,你可以配置好用它查看发送的soap消息 本来我也没注意到这个问题,我是在使用tuscany做客户端调用axis2的pojo服务端的时候,出问题了,死循环导致溢出,后来跟踪eclipse的sdo实现发现到这个问题的,因为这个type属性在wsdl和schema中未定义,所以导致循环解析出错 |
|
返回顶楼 | |
发表时间:2008-10-16
ningkun 写道 liang1022 写道 setp4:启动tomcat,在浏览器中输入: http://localhost:8080/axis2/services/HelloWorld/sayHello? param0="ningkun"将会看到,"Hello,ningkun"的消息。 ===================================================== 請問 一下, webservice可以從以上介上的方法來進行調用嗎? 我試了Axis2 內建的getVersion怎麼都調不出來呢? 在ie輸入: http://localhost:8080/axis2/services/Version?param0="hi" 回應的是HTTP500 內部伺服錯誤 不是吧,正常情况下是可以得到回应的啊。 我用 .Net WebServiceStudio 2.0 的工具來測試是正常, 但我比較好奇的是, 可以使用原作者 所提的方式,在IE的輸入網址來Resquest ,真的可以嗎?? |
|
返回顶楼 | |
发表时间:2008-11-04
难道说还有其他形式吗
|
|
返回顶楼 | |