别的同事在忙这个东西,正巧我不会所以就找资源学了点。
webService是什么东西可以去w3cSchool去看,但是那里只有.net的教程
那么我这里就记录下我的学习
步骤提纲:
1创建发布接口的服务器
2确认接口服务器运行正常可被调用
3通过CMD构造客户端
4调用客户端产生的接口,运行接口方法。
1.1:首先在Eclipse上创建web Service project类型项目名为TheService
1.2:然后创建对外公布的接口如下
//WebService类型注解 SOAP类型注解 @WebService @SOAPBinding(style=Style.RPC) public interface MyServiceInter { //方法注解 @WebResult(name="addResult") public int add(@WebParam(name="a")int a ,@WebParam(name="b")int b); }
1.3:创建该接口的实体类,构造接口方法具体实现
//webService对应的接口类 @WebService(endpointInterface="com.dhh.Service.MyServiceInter") @SOAPBinding(style=Style.RPC) public class MyService implements MyServiceInter { //对外公布接口的具体实现 @Override public int add(int a, int b) { // TODO Auto-generated method stub System.out.println("a+b="+(a+b)); return a+b; } }
1.4:创建服务器启动,这里使用main方法启动
public class Server { public static void main(String[] args) { //web路径 String address="http://localhost:8888/myservice"; //配置路径与该路径下的接口实现类 Endpoint.publish(address, new MyService()); System.out.println("publish success"); } }
2.1:该服务端启动之后可以在浏览器输入address+“?wsdl”查看接口内容。
如本例子中的:http://localhost:8888/myservice?wsdl
内容如下图:
3.1:先以Web Service project创建空项目 TheClient(注意这一系列操作的过程中服务端必须开启状态)
3.2:调用CMD命令输入命令
wsimport -d "(客户端项目src路径)" -keep (接口调用url)
3.3:刷新项目,你就会看到你的项目下多了一个包,跟服务端的包类似如下图:
MyClient是我后来第四部创建的类,懒得删了,你生成的包应该是没MyClient的。
4.1创建客户端测试类如下图运行即可发现可调用服务器的方法了
public class MyClient { public static void main(String[] args) { //MyServiceService接口的具体实现类,用来回调接口 MyServiceService myService = new MyServiceService(); //回调接口,以便使用接口方法 MyServiceInter myServiceInter = myService.getMyServicePort(); System.out.println(myServiceInter.add(28, 55)); } }
在客户端的操作必须在服务端正常运行下操作。
可查看服务端控制台,每次调用接口的时候服务端也会运行相应的具体实现方法。