如何使用Axis2使用Web服务

时间:2012-03-29 03:08:24

标签: java web-services axis2

我目前正在尝试从我编写的Web应用程序中调用Web服务。我的Web应用程序只有一个表单字段,要求用户在JSP页面中输入一个电子邮件地址,然后将其发送到另一个名为process.jsp的JSP页面进行处理。在process.jsp中,我想调用一个确认电子邮件地址有效性的Web服务。

我一直在尝试调用此网址上的以下网络服务:

http://www.xmethods.com/ve2/ViewListing.po?key=uuid:4506DD11-6A4F-2BF3-2DBE-EED251ABAA2A

我的代码如下:

import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class ClientEmailValidate {

public static void main(String[] args) throws AxisFault {

    RPCServiceClient serviceClient = new RPCServiceClient();
    Options options = serviceClient.getOptions();

    // Setting the endpoint resource
    EndpointReference targetEPR = new EndpointReference
     ("http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx");
    options.setTo(targetEPR);

    // Getting the operation based on the targetnamespace
    QName opGetExchange = new QName                            
          ("http://ws.cdyne.com", "VerifyEmail");

    String email = "someEmail@hotmail.com";

    // preparing the arguments
    Object[] opGetExchangeArgs = new Object[] { email };

    // preparing the return type
    Class[] returnTypes = new Class[] { String.class };

    // invoking the service passing in the arguments and getting the
    // response
    Object[] response = serviceClient.invokeBlocking(opGetExchange,
            opGetExchangeArgs, returnTypes);
    // obtaining the data from the response
    String result = (String) response[0];

    // Displaying the result
    System.out.println("Result : " + result);
} 
}

我在这里做错了吗?我很擅长使用网络服务,所以请耐心等待我。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下命令生成存根,然后一切都很简单

WSDL2Java -uri wsdl-url -p package-of-stub -d adb -s