webservice简单的编写,发布,调用
1.编写webservice
接口
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface MyService {
@WebMethod
public int add(@WebParam(name="a")int a, @WebParam(name="b")int b);
}
实现接口
import javax.jws.WebService;
import com.huawei.idp.composer.service.MyService;
@WebService(endpointInterface="com.huawei.idp.composer.service.MyService")
public class MyServiceimpl implements MyService{
@Override
public int add(int a, int b){
return a + b;
}
}
public static void main(String[] args) {
String address="http://localhost:8080/webservice/test";
Endpoint.publish(address, new MyServiceimpl());
System.out.println("发布成功");
}
wsimport -d C:\Users\Administrator\Desktop\test -keep -verbose http://localhost:8080/webservice/test?wsdl
3.2 参数说明:
-d 表示输出的文件夹。文件夹必须事先存在,否则导出失败。
-keep 表示导出webservice的class文件时是否也导出源码java文件。
-verbose verbose表示具体信息。
注:如出现 wsimport不是内部或者外部命令
尝试如下,再输入上面的wsimport......
set classpath=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
set path=%JAVA_HOME%\bin;
public static void main(String[] args) {
MyServiceimplService myserviceImpl = new MyServiceimplService();
MyService myService = myserviceImpl.getMyServiceimplPort();
System.out.println(myService.add(1, 2));
}
cmd下,用netstat -a -n -o 命令找出该端口,会显示正在监听(listening),-o参数会显示该连接所属的进程id,
然后去任务管理器,默认是不显示进程id的,设置里调出来,杀掉该进程即可。