我现在做的一个老项目,需要在JSP文件里通过调用webservice来发送手机短信
webservice的那个地址我已经有了,就是不知道来怎么调用?
请各位帮忙解释下
需要什么.jar文件?
配置文件需不需要改?(比如web.xml)
我没接触过webservice,请各位能解释的详细些,谢谢了先

解决方案 »

  1.   

    可以使用apache的axis,下载它,将它的lib文件夹的jar包放入你项目的classpath中在那里面的jar包中提供了将wsdl生成java对象的工具类,如下:java org.apache.axis.wsdl.WSDL2Java -v -D 你的wsdl文件的位置执行将会生成java对象,放入到你的src中就可以调用你的发短信的接口了
      

  2.   

    http://www.blogjava.net/zjhiphop/archive/2009/04/29/webservice.htmlGood Luck!
      

  3.   

    可以用Ajax传值进行调用,不需要任何Jar包。
      

  4.   

    跟你在Action里面调用别的方法的方式是一样的。比如我这个使用的是Apache Axis2,在Linux下调用windows 的access数据库,也是发送手机短息的更能。
    服务端发布OK了,客户度调用如下:try {
       RPCServiceClient serviceClient = new RPCServiceClient();
       Options options = serviceClient.getOptions();
       EndpointReference targetERP = new EndpointReference(address);//这是服务端URL
       options.setTo(targetERP);
       opAddEntryArgs = new Object[]{queryObj.getName()};
       Class[] classes = new Class[]{int.class};
       if(queryObj.getName().equals("")){//这里是你自己的逻辑
            //调用服务端方法
    opAddEntry = new QName("http://ws.apache.org/axis2","getCountMessageValue");
    }
    ......
    //我使用的是RPC方式调用,使用的是invokeBlocking方法,你可以查一下这个方法的参数及使用。
    //你也可以使用生成类调用,自己搜搜看
      

  5.   


    我也是刚接触,也有些说不清楚。好在我做的那个也是手机发短信的,只不过用的是Access,不能在Linux下用才选择使用webservice.
    我使用的是Axis2,暂时我只对这个能说出点道道来。
    1、服务端程序:跟平常一样,就是写你自己的类,完成自己的业务逻辑,然后发布为webservice即可。
    2、客户端程序:有两种调用服务端的方式RPC方式(自己写代码)与通过Axis2提供的wsdl2java.bat命令自动生成客户端调用代码。
    RPC方式调用就是指使用RPCServiceClient类的invokeBlocking方法。
    平常是用一个类的对象来调用他的方法,现在客户度通过一定的方式来调用服务端的方法://  使用RPC方式调用WebService        
            RPCServiceClient serviceClient = new RPCServiceClient();
            Options options = serviceClient.getOptions();
            //  指定调用WebService的URL
            EndpointReference targetEPR = new EndpointReference(
                    "http://localhost:8080/axis2/services/SimpleService");
            options.setTo(targetEPR);
            //  指定getGreeting方法的参数值
            Object[] opAddEntryArgs = new Object[] {"这里传参"};
            //  指定getGreeting方法返回值的数据类型的Class对象
            Class[] classes = new Class[] {String.class};//这是服务端方法的返回值类型
            //  指定要调用的getGreeting方法及WSDL文件的命名空间
            QName opAddEntry = new QName("http://ws.apache.org/axis2", "getGreeting");//调用getGreeting方法
            //  调用getGreeting方法并输出该方法的返回值
            System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
            //  下面是调用getPrice方法的代码,这些代码与调用getGreeting方法的代码类似
            classes = new Class[] {int.class};
            opAddEntry = new QName("http://ws.apache.org/axis2", "getPrice");
            System.out.println(serviceClient.invokeBlocking(opAddEntry, new Object[]{}, classes)[0]);似乎也没说明白,给你个链接吧
    http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/02/249556.html
      

  6.   

    参考:http://topic.csdn.net/u/20091016/22/56aebb07-cd7b-4c7b-a38a-ebd7f35392c8.html