环境是要jdk1.6
首先在eclipse中新建一个java项目
然后写个service类
package cn.com.wsm.service;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class JavaService
{
public String doSomething(String s)
{
System.out.println(s);
return "Hello " + s +" !";
}
public static void main(String[] args)
{
Endpoint.publish("http://localhost:8888/javaWebservice/", new JavaService());
}
}
运行JavaService类,可以看成是服务端
然后再浏览器上打入 http://localhost:8888/javaWebservice/?wsdl 会出现一段xml
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
-
<
definitions
xmlns:soap
="
http://schemas.xmlsoap.org/wsdl/soap/
"
xmlns:tns
="
http://service.wsm.com.cn/
"
xmlns:xsd
="
http://www.w3.org/2001/XMLSchema
"
xmlns
="
http://schemas.xmlsoap.org/wsdl/
"
targetNamespace
="
http://service.wsm.com.cn/
"
name
="
JavaServiceService
">
<
xsd:import
namespace
="
http://service.wsm.com.cn/
"
schemaLocation
="
http://localhost:8888/javaWebservice/?xsd=1
" />
</
xsd:schema
>
</
types
>
<
part
name
="
parameters
"
element
="
tns:doSomething
" />
</
message
>
<
part
name
="
parameters
"
element
="
tns:doSomethingResponse
" />
</
message
>
<
input
message
="
tns:doSomething
" />
<
output
message
="
tns:doSomethingResponse
" />
</
operation
>
</
portType
>
<
soap:binding
transport
="
http://schemas.xmlsoap.org/soap/http
"
style
="
document
" />
</
binding
>
<
soap:address
location
="
http://localhost:8888/javaWebservice/
" />
</
port
>
</
service
>
</
definitions
>
说明你的service设置成功。
接着就是设置client,用client来调用service的方法
同时要运行JavaService类 ,开启服务端
运行cmd 进入到你的eclipse所在项目的src目录下
运行一段命令:
D:/workspaces/javaWebservice/src>wsimport -p cn.com.wsm.client -keep http://localhost:8888/javaWebservice/?wsdl
会在你的wsm包下多出一个client包以及一些java类,说明客户端生成
新建一个client类测试
package cn.com.wsm.service;
public class Client {
/**
/**
* @param args
*/
public static void main(String[] args)
{
JavaService a = new JavaServiceService().getJavaServicePort();
String s = a.doSomething("我来了");
System.out.println(s);
}
}
其中注意了,要包含
import cn.com.wsm.client.JavaServiceService;
import cn.com.wsm.client.JavaService;
import cn.com.wsm.client.JavaService;
这两个类
运行client类
出现 hello,我来了
说明调试成功~
最基本的已说完~
当然webservice很复杂,这是最最最基本的~自己也还刚开始学,希望对初学者有帮助~
注释:
wsimport
wsimport是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C#编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
wsimport是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C#编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
- -d 生成客户端执行类的class文件的存放目录
- -s 生成客户端执行类的源文件的存放目录
- -p 定义生成类的包名