GlassFish上开发部署JAX-WS WebService应用( by quqi99 )
作者:张华 发表于:2010-01-06
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
一、开发服务端
1) 服务端代码如下:
package test;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.WebParam;
@WebService()
public class WeatherWS {
@WebMethod
public String getWeather(@WebParam(name = "city") String city) {
return (new StringBuilder(String.valueOf(city))).append(
"'s weather is sunny").toString();
}
}
注意上面的标签,@WebService(), @WebMethod, @WebParam就不解决了。总之JAX-WS就是一种标准,是
开发webservice程序的一种标准。当然实现生命周期回调时,还有下列标签:
javax.annotation.PostConstruct
javax.annotation.PreDestroy
javax.annotation.PostConstruct
2) 使用glassfish的wsgen工具为上述服务端JAVA代码生成WSDL文件
bin/wsgen.bat -cp . -wsdl test.WeatherWS
3)部署,部署时可以用WAR,也可以用JAR。我是直接把这个目录拷到了glassfish热部署目录下(glassfish/domains/domain1/autodeploy)。
4)这样部署成功了,地址为http://quqi99.com:8080//WeatherWS/WeatherWSService?WSDL,你可以通过IE访问
二、客户端开发
1)建一个XML文件config.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<wsdl location="http://quqi99.com:8080//WeatherWS/WeatherWSService?WSDL" packageName="test">
</wsdl>
</configuration>
2)使用glassfish的wscompile.bat命令生成客户端代码:
glassfish/bin/wscompile.bat -gen -keep -d . config.xml
3)在客户端代码生成好之后,可以用下列测试应用测试:
package test;
/**
* @version 0.10 2010-1-6
* @author Zhang Hua
*/
public class WeatherClient {
public static void main(String[] args) {
try {
WeatherWSService ws = new WeatherWSService_Impl();
WeatherWS stub = ws.getWeatherWSPort();
String result = stub.getWeather("bj");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4)OK