使用XFire编写第一个javaee上的web service程序
1.CXF简介
2. 如何实现简单的hello world程序
3. 试试在.net环境下调用上面的服务
4. 代码下载
1. XFire简介
CXF代替了XFire,但是 XFire仍旧在维护。XFire大大简化了javaee平台下面web service的开发(myeclipse开发环境中更加如此)。同时能够支持WS-*等功能。
2. 如何实现简单的hello world程序
下面开始实现第一个web service程序,还是从hello world开始啦。
2.1 在myeclipse 6.5中新建一个web service工程。
一路next,最终建立了第一个web serivice工程。
2.2 下面新建一个新的service。
myeclipse将生成HelloWorldService.java,同时环境已经配置好。修改上面生成两个文件:
HelloWorldServiceImpl.java:
package jefferyxu.services;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
IHelloWorldService.java:
package jefferyxu.services;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
2.3 将上述工程部署到tomcat中。
2.4 生成web service的客户端。
完成之后,生成 HelloWorldServiceClient.java文件,修改main函数代码:
public static void main(String[] args) {
HelloWorldServiceClient client = new HelloWorldServiceClient();//create a default service endpoint
HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();
//TODO: Add custom client code here
//
//service.yourServiceOperationHere();
String webSerivceResult = service.sayHello("qiang.xu");
System.out.println("get the result form web service is " + webSerivceResult);
System.out.println("test client completed");
System.exit(0);
}
运行Main函数,将出现Hello,qiang.xu的字符串,表明正确调用了web service。
3. 试试在.net环境下调用上面的服务
.net中调用web service比较简单,添加web service reference,并命名为JavaEEServiceReference,测试代码:
namespace JavaEEWebServiceConsumer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("get the message from javaee websservice");
JavaEEServiceReference.HelloWorldServicePortTypeClient proxy =
new JavaEEServiceReference.HelloWorldServicePortTypeClient();
String message = proxy.sayHello("qiang.xu");
Console.WriteLine("the javaee web service return :" + message);
Console.WriteLine("press any key to continue");
Console.ReadKey();
}
}
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("get the message from javaee websservice");
JavaEEServiceReference.HelloWorldServicePortTypeClient proxy =
new JavaEEServiceReference.HelloWorldServicePortTypeClient();
String message = proxy.sayHello("qiang.xu");
Console.WriteLine("the javaee web service return :" + message);
Console.WriteLine("press any key to continue");
Console.ReadKey();
}
}
}