WebService入门简单实例(采用AXIS的方式) 博客分类: webservicejavaaxis webservicejavaaxis
程序员文章站
2024-03-25 17:54:52
...
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包,希望可以帮助各位新手入门!