中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。
分类: Java
2013-11-29 20:56:45
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@WebService(targetNamespace = "")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class HelloWorld {
@WebMethod(action="toSayHello",operationName="toSayHello",exclude=false)
@WebResult(name="returnWord")//自定荵芽??方法返回蛟?在WSDL中相蜈?的描述
public String sayHello(@WebParam(name="userName")String userName) {
return"Hello :" + userName;
}
@WebMethod
public int getExp(int i, int j) {
return i / j;
}
// wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl atest.webService.HelloWorld
}
当前目录下面编译一下:
javac HelloWorld.java
建3个目录:src,bin,wsdl
执行以下命令行语句:
wsgen -cp ./ -r ./wsdl -s ./src -d ./bin -wsdl HelloWorld
编写StartService.java(webservice启动器)
import javax.xml.ws.Endpoint;
public class StartService {
public static void main(String[] args) {
Endpoint.publish("", new HelloWorld());
}
}
编译 javac StartService.java
启动服务:
java StartService
1:可以用jconsole查看服务是否启动。
2:也可以在浏览器地址栏中输入:
会显示:
No JAX-WS context information available.
http://hiyachen.blog.chinaunix.net
3:
如果 一个XML文件显示,OK,已经启动。
服务器,其实已经做好了。简单吧。
下面做客户端:
建客户端目录client,当然也可以换台机器来做,更形象。
重新用cmd起一个命令行容器。
同样建3个目录:src,bin,wsdl
wsimport -d ./bin -s ./src -p client
parsing WSDL...
generating code...
compiling code...
会生成2个文件:HelloWorld.java HelloWorldService.java
移到client根目录下。编译一下。
编写文件:ClientRun.java
public class ClientRun {
/**
*/
public static void main(String[] args) {
HelloWorldService hws = new HelloWorldService();
HelloWorld hw = hws.getHelloWorldPort();
System.out.println(hw.getExp(9, 3));
System.out.println(hw.toSayHello("hiyachen"));
}
}编译 javac ClientRun.java
运行:java ClientRun
以下结果就OK了.
3
Hello:hiyachen
环境:
JDK6,soap1.1,wsdl,annotation
webservice其实也不难,再用上java的servlet类,就可以编出个tomcat了。
加上socket的
Socket client = new Socket("127.0.01.", 80); //客户端向port:80发送请求
ServerSocket server = new ServerSocket(80); //服务器监听port:80的请求。
关于webservice的一些词汇和注视的解释,请读:
自己动手做一个WebService (2)