WebService入门简单实例(采用AXIS的方式)

1.在JAVAEE的环境下新建一web工程项目,之后在src下新建一个类如HelloWorld.java,内容如下:

public class HelloWorld {  
      
    public String querySingle(String userName_, String password_, String type_, String param_){  
        String resultStr="Hello," + userName_ + "," + password_ + ", " + type_ + ", " + param_;  
       
        System.out.println(resultStr);  
        return resultStr;  
    }  
}

 2.这个类将要扮演webservice服务端的角色,而querySingle这一方法即为webservice服务端所提供的接口方法。接下来创建webservice服务端,选择HelloWorld.java类右键新建web service

   

点击下一步

继续下一步,直到完成。

3.webservice创建完毕后会发现WEB-INF下的lib目录中增加了6个AXIS的jar包,和其它一些自动生成的相关配置文件;

4.测试web service:右击HelloWorld.wsdl---Web Services---Test with Web Services Explorer---点击方法名querySingle----输入参数abc,def,ghi,jkl---点go.此时会发现控制台输出Hello,abc,def, ghi, jkl,说明测试成功。WebService没有问题。 

 

5.编写客户端调用类,利用AXIS调用HelloWorld.代码如下:

import java.rmi.RemoteException;

import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class HelloWorldTest {
    
    public String invokeRemoteFuc() {
        // 远程调用路径
        String endpoint = "http://localhost:8080/WebServiceTest/services/HelloWorld";
        String result = "call failed!";
        Service service = new Service();
        Call call;
        
        try {
            call = (Call) service.createCall();
            call.setTargetEndpointAddress(endpoint); 
            // 调用的方法名
            call.setOperationName("querySingle"); 
            
            // 设置参数名
            call.addParameter("userName_",   // 参数名
                    XMLType.XSD_STRING, // 参数类型:String
                    ParameterMode.IN);  // 参数模式:'IN' or 'OUT'
            call.addParameter("password_",   // 参数名
            		XMLType.XSD_STRING, // 参数类型:String
            		ParameterMode.IN);  // 参数模式:'IN' or 'OUT'
            call.addParameter("type_",   // 参数名
            		XMLType.XSD_STRING, // 参数类型:String
            		ParameterMode.IN);  // 参数模式:'IN' or 'OUT'
            call.addParameter("param_",   // 参数名
            		XMLType.XSD_STRING, // 参数类型:String
            		ParameterMode.IN);  // 参数模式:'IN' or 'OUT'

            // 设置返回值类型
            call.setReturnType(XMLType.XSD_STRING); // 返回值类型:String
            String userName_ = "qiangjiyi";
            String password_ = "123";
            String type_ = "456";
            String param_ = "789";
            result = (String) call.invoke(new Object[] { userName_, password_, type_, param_ });// 远程调用
        } catch (ServiceException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
        
        return result;
    }

    // 测试
    public static void main(String[] args) {
        HelloWorldTest test = new HelloWorldTest();
        String result = test.invokeRemoteFuc();
        System.out.println(result);
    }

}

  注意:1、设置方法名和参数名的时候,必须与被调用的WebService保持一致;2、传递的参数需封装到一个Object数组里) 

6.测试:选中HelloWorldTest右键 ---Run as---Java application,如果发现控制台正确输出Hello,qiangjiyi,123, 456, 789.说明测试成功。 至此一个简单的webservice示例就算完事。

温馨提示:附件中包含有axis所需的jar包,希望可以帮助各位新手入门!

猜你喜欢

转载自qiangjiyi.iteye.com/blog/2223655
今日推荐