WebService 作为一项流行的通信技术,被大多数应用所采用。本文将从Idea 创建WebService 的Server 和Client 开始介绍,后续将会详细介绍WebService的一系列配置,达到由浅入深的效果。
此时注意下方“Version” ,我们选择使用“Apache Axis”(为什么要选择这个?)
点击“finish”,即 WebService的“Server”创建成功。
创建完成后,界面显示如下:
可以看到这是一个Web项目,自动生成了HelloWorld.java文件,里面包含一个方法,接收一个参数,并返回"Hello, world, from "+输入的信息,并且生成了Server 的配置文件“server-config.wsdd”。
打开“HelloWorld.java”,右击鼠标,选择“WebServices”,选择“Generate Wsdl From Java Code”。
出现如下界面,这就是将要发布的服务以及方法的定义,例如端口为9000.
点击"OK",生成“HelloWorld.wsdl”文件,里面定义了我们要发布的方法的输入输出规则等信息。(具体的xml文件的介绍请关注后续文章介绍)
至此,我们的WebService服务已经生成,因为这是一个Web项目,因此需要使用Tomcat 进行发布。请注意,发布之前,需要将使用的jar 包打包进去。选中项目,右击,选择“Open Module Settings”.
看到左边“Problems”标记为“1”,说明有一些需要处理的问题,点击可看到如下界面,意思是有jar 包没被打包进发布文件,点击Fix,完成修复。
以下流程为正常的Web项目发布过程,看截图,具体不做过多介绍,需要注意的是端口号改成我们之前发布Server时一样的端口,此处是9090。
在浏览器中输入 http://localhost:9000/services,出现如下画面
说明发布成功,已经有了所有的该webservice 的信息。
点击HelloWorld后面的超链接,效果如下:
至此,server端创建并发布运行成功。
注意“Version”的选择和Server相同。
点击“Finish”完成创建。
创建完成,自动弹出如下界面,需要填写Server的信息
第一个输入框,点击后面的选择按钮,选择我们之前创建Server的wsdl文件即可,自动会从wsdl文件中找到对应的访问url信息。
因为我们之前创建server时,并未配置用户名和密码信息,因此此处我们用户名和密码不用输入。(用户名密码配置后续文章会介绍)
“Package prefix ”需要填写的是自动创建的文件所在的包名,此处填写的“com.webservice”。点击“Ok”,完成创建客户端。
从上图可以看出,创建完成后会报很多错误信息,不用紧张。首先按“Alt+Enter”组合键,引入相应的包,然后将其中的部分内容替换成我们当前server的调用,即将
Activator service = locator.get();
// If authorization is required
//((HelloWorldSoapBindingStub)service).setUsername("user3");
//((HelloWorldSoapBindingStub)service).setPassword("pass3");
// invoke business method
service.businessMethod();
替换成
HelloWorld_PortType helloWorld_portType = locator.getHelloWorld();
String message = helloWorld_portType.sayHelloWorldFrom("client1");
System.out.println(message);
至此,客户端配置完成。
因为这就是一个普通的java项目,通过main方法执行,因此直接右击选择Run“HelloWorldClient.main()”。
运行结果如下
可以看到,输出的信息是服务器返回的信息,客户端配置正确。
至此,一个完整的webservice 所包含的Server和Client配置完成,后续文章会介绍其各种配置以及安全问题,敬请关注。