webservice学习之使用java发布webservice以及调用

不需要别的jar包,直接用myeclipse创建web项目,有自带的javax.jws.WebService

很简单,第一步写一个接口:注意写上注解

package test.wervice; 
import javax.jws.WebService;
@WebService

public interface HelloWorld {

    void sayHi(String name);

}

第二步写上接口的实现类:注意写上注解
package test.wervice.impl;

import javax.jws.WebService;

import test.wervice.HelloWorld;

@WebService(endpointInterface=“test.wervice.HelloWorld”)
public class HelloWorldImpl implements HelloWorld{

public void sayHi(String name) {
    System.out.println("helloWorld"+name);
}

}

第三步就可以发布你的这个webservice了,写一个发布类
package test.wervice;

import javax.xml.ws.Endpoint;

import test.wervice.impl.HelloWorldImpl;

public class serviceApp {

public static void main(String[] args){
    System.out.println("start service");
    Endpoint.publish("http://localhost:8080/helloWorld", new HelloWorldImpl());
    System.out.println("end service");
}

}

这样运行main方法,你的webservice接口就算发布了,然后打开浏览器输入http://localhost:8080/helloWorld?wsdl即可
webservice学习之使用java发布webservice以及调用_第1张图片

这样就完成了发布,要怎么调用呢?我是借用的cxf中的wsdl2java来生成的,具体步骤如下:

1、先下载cxf包 http://cxf.apache.org/download.html,现在cxf包。
2、解压缩包,通过cmd命令进入到bin目录下
3、使用wsdl2java命令生成客户端代码,执行如下命令

    wsdl2java -p org.logink.ws -d f:\logink\src -all http://localhost:8080/helloWorld?wsdl

其中wsdl2java用法解释:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.这个我不是很理解,反正后面就是wsdl这个地址

生成后最后从生成目录中找出代码,copy到你自己要用的地方,测试下Ok了

你可能感兴趣的:(webservice学习之使用java发布webservice以及调用)