axis1发布方式进阶篇
来源:互联网 发布:淘宝最好卖的东西 编辑:程序博客网 时间:2024/05/29 19:24
上一篇文章,HelloImp.java 中 public String sayHello(String name){
}
输入参数,返回参数是基本类型的,若是复杂类型该怎么发布,调用呢?
建议先看下上篇文章,这篇文章说明较少。直接贴上代码
第一步、贴上代码
User.java
- package com.bing.inter.pojo;
- public class User implements java.io.Serializable {
- private Integer id;
- private String name;
- private Integer age;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- }
- package com.bing.inter;
- import java.util.ArrayList;
- import java.util.List;
- import com.bing.inter.pojo.User;
- public class UserService {
- public List<User> getUsersByNames(String name){
- List<User> list=new ArrayList<User>();
- User u1=new User();
- User u2=new User();
- User u3=new User();
- u1.setName(name);
- u1.setId(1);
- u1.setAge(1);
- u2.setName(name);
- u2.setId(2);
- u2.setAge(2);
- u3.setName(name);
- u3.setId(3);
- u3.setAge(3);
- list.add(u1);
- list.add(u2);
- list.add(u3);
- return list;
- }
- }
userWS.wsdd
- <deployment xmlns="http://xml.apache.org/axis/wsdd/"
- xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service name="userWS" provider="java:RPC">
- <parameter name="className" value="com.bing.inter.UserService"/>
- <parameter name="allowedMethods" value="*"/>
- <beanMapping qname="myNSD:User" xmlns:myNSD="urn:BeanService"
- languageSpecificType="java:com.bing.inter.pojo.User"/>
- </service>
- </deployment>
第二步、发布
userWS.wsdd 复制到%TOMCAT_HOME%/webapps/axis/目录下
把User.class,UserService.class文件按照目录复制到%TOMCAT_HOME%/webapps/axis/WEB-INF/classes目录下
新建一个userWS.bat文件,内容如下
- set Axis_Lib=C:\axis-1_4\lib
- set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
- set Axis_Servlet=http://localhost:9080/axis/servlet/AxisServlet
- %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% userWS.wsdd
- pause
执行userWS.bat,访问http://localhost:9080/axis/services/userWS?wsdl 是否发布成功。
第三步、测试
- package com.bing.test;
- import javax.xml.namespace.QName;
- import org.apache.axis.client.Call;
- import org.apache.axis.client.Service;
- import com.bing.inter.pojo.User;
- public class TestUserClient {
- public static void main(String[] args){
- Service service=new Service();
- String url="http://localhost:9080/axis/services/userWS?wsdl";
- try {
- Call call=(Call)service.createCall();
- call.setTargetEndpointAddress(url);
- call.setOperation("getUsersByNames");
- //要记住当你的方法需要传入自定义类型的参数或返回自定义类型时,一定要在wsdd文档中注册,在客户端编程时也要注册
- QName qn = new QName("urn:BeanService", "User");
- call.registerTypeMapping(User.class, qn,
- new org.apache.axis.encoding.ser.BeanSerializerFactory(
- User.class, qn),
- new org.apache.axis.encoding.ser.BeanDeserializerFactory(
- User.class, qn));
- //返回结果是List 需要按照以下调用,返回的结果不能直接强制转换成List
- Object[] oo=(Object[])call.invoke(new Object[]{"大兵哥"});
- for(int i=0,len=oo.length;i<len;i++){
- User u=(User)oo[i];
- System.out.println(u.getName());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
0 0
- axis1发布方式进阶篇
- axis1发布方式进阶篇
- axis1发布方式
- axis1发布方式
- axis1小例子之进阶篇
- axis1小例子之进阶篇
- Axis1.4发布WebService
- 二、axis1用wsdd(Web Services Deployment Descriptor)方式发布WebService
- axis1.4 wsdd 方式发布webservice 服务配置文件以及常用的DOS执行语句
- AXIS1.4,spring集成发布
- myeclipse利用axis1.4发布webservice
- axis1.4 发布webservice的问题
- axis1.4发布struts-config.wsdd文件
- WebService笔记之即时发布(Axis1.4)
- 使用axis1.4发布WebService简单示例
- 【WebService】第四章、Axis1.4发布WebService
- 【WebService】第四章、Axis1.4发布WebService
- axis1
- 杭电2602
- JavaWeb:Unable to compile class for JSP
- 常用命令
- android 后台附件下载
- [LeetCode] Maximal Square(!!!!DP优化)
- axis1发布方式进阶篇
- 争与不争
- opensessioninview
- 观点 | 为什么说云主机比物理机故障率更低?
- 数据结构堆的实现
- axis1发布方式
- iOS程序员面试题系列(1)
- Codeforces Round #290 (Div. 2) - C. Fox And Names (拓扑排序)
- AlertDialog